# HG changeset patch # User michael # Date 1115399043 0 # Node ID b2e6c5e9240b185cc821f07efc3563c996a73fa5 # Parent c3a06b0b00e2bff9c5dde84da69053176233f5a5 fix decoding of conformace streams AUD_MW_E.264 and BA1_FT_C.264 again (there where last correctly decoded with h264.c rev 1.96) diff -r c3a06b0b00e2 -r b2e6c5e9240b h264.c --- a/h264.c Fri May 06 14:36:15 2005 +0000 +++ b/h264.c Fri May 06 17:04:03 2005 +0000 @@ -3697,6 +3697,11 @@ if(h->sps.poc_type==0){ const int max_poc_lsb= 1<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) @@ -6946,7 +6951,7 @@ cur->reference = 1; for(i=0; h->delayed_pic[i]; i++) - if(h->delayed_pic[i]->key_frame) + if(h->delayed_pic[i]->key_frame || h->delayed_pic[i]->poc==0) cross_idr = 1; out = h->delayed_pic[0];