From cd847839f33e58a2c2259595335ab483ef32667d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=AE=87=E9=BE=99?= Date: Fri, 9 Oct 2015 13:59:56 +0800 Subject: [PATCH] h264_mp4toannexb: fix the pps offset when there are more than one sps in avcc the pps offset is used to locate pps in the spspps_buf; however, the current calc method is wrong because it is the offset of the original avctx->extradata; when there is only one sps in the avcc; the value is correct by coincidence, however, it will fail in avcc with multi sps Signed-off-by: Michael Niedermayer --- libavcodec/h264_mp4toannexb_bsf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/h264_mp4toannexb_bsf.c b/libavcodec/h264_mp4toannexb_bsf.c index a927bab3f8..2d447f7550 100644 --- a/libavcodec/h264_mp4toannexb_bsf.c +++ b/libavcodec/h264_mp4toannexb_bsf.c @@ -122,7 +122,7 @@ pps: if (!unit_nb && !sps_done++) { unit_nb = *extradata++; /* number of pps unit(s) */ if (unit_nb) { - ctx->pps_offset = (extradata - 1) - (avctx->extradata + 4); + ctx->pps_offset = total_size; pps_seen = 1; } }