aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/h264.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2008-07-19 16:16:00 +0000
committerMichael Niedermayer <michaelni@gmx.at>2008-07-19 16:16:00 +0000
commitfb19e1443bc45e192545d3485ddb9c76e7d77855 (patch)
treec8815dffa09fbb6a2ac62f7d845c5a074bc0bb0c /libavcodec/h264.c
parent0042808e31c33db13992b07ccfdf482782891829 (diff)
downloadffmpeg-fb19e1443bc45e192545d3485ddb9c76e7d77855.tar.gz
Take the brain amputated spec literally if the user asks for it (-strict 1).
That is, add 16 frames delay, cache trashing and av desync. fixes at least the following reference bitstreams: CABA3_Sony_C.jsv CACQP3_Sony_D.jsv CAMANL1_TOSHIBA_B.264 CANL3_Sony_C.jsv CVBS3_Sony_C.jsv CVMANL1_TOSHIBA_B.264 Originally committed as revision 14308 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/h264.c')
-rw-r--r--libavcodec/h264.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 2e7b1cddaf..4a02ae6795 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -7836,6 +7836,12 @@ static int decode_frame(AVCodecContext *avctx,
s->low_delay = 0;
}
+ if( s->avctx->strict_std_compliance >= FF_COMPLIANCE_STRICT
+ && !h->sps.bitstream_restriction_flag){
+ s->avctx->has_b_frames= MAX_DELAYED_PIC_COUNT;
+ s->low_delay= 0;
+ }
+
pics = 0;
while(h->delayed_pic[pics]) pics++;