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