diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2008-07-24 22:04:29 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2008-07-24 22:04:29 +0000 |
commit | 80f8e035baf47a98cae3ce3a309cca1f5e499280 (patch) | |
tree | dab0e828df3a46cfe6f564e665a6259e6b2a2689 /libavcodec/h264.c | |
parent | e16190fa7ae2aeaaa7e08e9562fc6701299e9ed1 (diff) | |
download | ffmpeg-80f8e035baf47a98cae3ce3a309cca1f5e499280.tar.gz |
init_poc() vs. idr() cleanup
Originally committed as revision 14377 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/h264.c')
-rw-r--r-- | libavcodec/h264.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c index fe14807b93..9107301a17 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -3304,6 +3304,9 @@ static void idr(H264Context *h){ } h->short_ref_count=0; h->prev_frame_num= 0; + h->prev_frame_num_offset= 0; + h->prev_poc_msb= + h->prev_poc_lsb= 0; } /* forget old pics after a seek */ @@ -3696,23 +3699,14 @@ static int init_poc(H264Context *h){ const int max_frame_num= 1<<h->sps.log2_max_frame_num; int field_poc[2]; - if(h->nal_unit_type == NAL_IDR_SLICE){ - h->frame_num_offset= 0; - }else{ if(h->frame_num < h->prev_frame_num) h->frame_num_offset= h->prev_frame_num_offset + max_frame_num; else h->frame_num_offset= h->prev_frame_num_offset; - } if(h->sps.poc_type==0){ const int max_poc_lsb= 1<<h->sps.log2_max_poc_lsb; - if(h->nal_unit_type == NAL_IDR_SLICE){ - h->prev_poc_msb= - h->prev_poc_lsb= 0; - } - if (h->poc_lsb < h->prev_poc_lsb && h->prev_poc_lsb - h->poc_lsb >= max_poc_lsb/2) h->poc_msb = h->prev_poc_msb + max_poc_lsb; else if(h->poc_lsb > h->prev_poc_lsb && h->prev_poc_lsb - h->poc_lsb < -max_poc_lsb/2) @@ -3760,12 +3754,8 @@ static int init_poc(H264Context *h){ field_poc[1] += h->delta_poc[1]; }else{ int poc; - if(h->nal_unit_type == NAL_IDR_SLICE){ - poc= 0; - }else{ if(h->nal_ref_idc) poc= 2*(h->frame_num_offset + h->frame_num); else poc= 2*(h->frame_num_offset + h->frame_num) - 1; - } field_poc[0]= poc; field_poc[1]= poc; } |