This part is now entirely out of sync with mainline.
---
 libavcodec/h264.c |   26 ++++++++++----------------
 libavcodec/h264.h |    1 -
 2 files changed, 10 insertions(+), 17 deletions(-)
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 2a1c610..d32bc29 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2403,12 +2403,10 @@ static int decode_update_context(AVCodecContext *dst, AVCodecContext *src){
     copy_picture_range(h->long_ref, h1->long_ref, h->long_ref_count, s, s1);
     copy_picture_range(h->delayed_pic, h1->delayed_pic, MAX_DELAYED_PIC_COUNT, s, s1);
     h->delayed_output_pic = h1->delayed_output_pic ? &s->picture[h1->delayed_output_pic - s1->picture] : NULL;
-    copy_picture_range(h->next_delayed_pic, h1->next_delayed_pic, MAX_DELAYED_PIC_COUNT, s, s1);
     h->next_delayed_output_pic = h1->next_delayed_output_pic ? &s->picture[h1->next_delayed_output_pic - s1->picture] : NULL;
 
     h->prev_frame_num_offset= h->frame_num_offset;
     h->prev_frame_num= h->frame_num;
-    memcpy(h->delayed_pic, h->next_delayed_pic, sizeof(h->delayed_pic));
     if(!s->dropable) {
         h->prev_poc_msb= h->poc_msb;
         h->prev_poc_lsb= h->poc_lsb;
@@ -7007,7 +7005,6 @@ static void decode_postinit(H264Context *h){
     Picture *out = s->current_picture_ptr;
     Picture *cur = s->current_picture_ptr;
     Picture *prev = h->delayed_output_pic;
-    Picture **delayed_pics = USE_FRAME_THREADING(s->avctx) ? h->next_delayed_pic : h->delayed_pic;
     int i, pics, cross_idr, out_of_order, out_idx;
 
     cur->qscale_type= FF_QSCALE_TYPE_H264;
@@ -7022,9 +7019,6 @@ static void decode_postinit(H264Context *h){
 
     //FIXME do something with unavailable reference frames
 
-    if(delayed_pics != h->delayed_pic)
-        memcpy(delayed_pics, h->delayed_pic, sizeof(h->delayed_pic));
-
     if(h->sps.bitstream_restriction_flag
        && s->avctx->has_b_frames < h->sps.num_reorder_frames){
         s->avctx->has_b_frames = h->sps.num_reorder_frames;
@@ -7032,24 +7026,24 @@ static void decode_postinit(H264Context *h){
     }
 
     pics = 0;
-    while(delayed_pics[pics]) pics++;
+    while(h->delayed_pic[pics]) pics++;
 
     assert(pics <= MAX_DELAYED_PIC_COUNT);
 
-    delayed_pics[pics++] = cur;
+    h->delayed_pic[pics++] = cur;
     if(cur->reference == 0)
         cur->reference = DELAYED_PIC_REF;
 
     cross_idr = 0;
-    for(i=0; delayed_pics[i]; i++)
-        if(delayed_pics[i]->key_frame || delayed_pics[i]->poc==0)
+    for(i=0; h->delayed_pic[i]; i++)
+        if(h->delayed_pic[i]->key_frame || h->delayed_pic[i]->poc==0)
             cross_idr = 1;
 
-    out = delayed_pics[0];
+    out = h->delayed_pic[0];
     out_idx = 0;
-    for(i=1; delayed_pics[i] && !delayed_pics[i]->key_frame; i++)
-        if(delayed_pics[i]->poc < out->poc){
-            out = delayed_pics[i];
+    for(i=1; h->delayed_pic[i] && !h->delayed_pic[i]->key_frame; i++)
+        if(h->delayed_pic[i]->poc < out->poc){
+            out = h->delayed_pic[i];
             out_idx = i;
         }
 
@@ -7071,8 +7065,8 @@ static void decode_postinit(H264Context *h){
         out = prev;
 
     if(out_of_order || pics > s->avctx->has_b_frames){
-        for(i=out_idx; delayed_pics[i]; i++)
-            delayed_pics[i] = delayed_pics[i+1];
+        for(i=out_idx; h->delayed_pic[i]; i++)
+            h->delayed_pic[i] = h->delayed_pic[i+1];
     }
 
     if(prev && prev != out && prev->reference == DELAYED_PIC_REF)
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 715bedb..bf813b9 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -339,7 +339,6 @@ typedef struct H264Context{
     Picture *delayed_pic[MAX_DELAYED_PIC_COUNT+2]; //FIXME size?
     Picture *delayed_output_pic;
 
-    Picture *next_delayed_pic[MAX_DELAYED_PIC_COUNT+2];
     Picture *next_delayed_output_pic;
 
     /**
_______________________________________________
FFmpeg-soc mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc

Reply via email to