From 9d6ad68fa445b5e160a9277c250cf3238c373a3a Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 12 Nov 2014 03:27:26 +0100 Subject: [PATCH] avcodec/h264_parser: Avoid adding SEI to the global header Only consider SEI when no PPS has been found yet Signed-off-by: Michael Niedermayer --- libavcodec/h264_parser.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c index d0592ad5f8..6e87efabe8 100644 --- a/libavcodec/h264_parser.c +++ b/libavcodec/h264_parser.c @@ -519,16 +519,19 @@ static int h264_split(AVCodecContext *avctx, int i; uint32_t state = -1; int has_sps = 0; + int has_pps = 0; for (i = 0; i <= buf_size; i++) { if ((state & 0xFFFFFF1F) == 0x107) has_sps = 1; + if ((state & 0xFFFFFF1F) == 0x108) + has_pps = 1; /* if ((state&0xFFFFFF1F) == 0x101 || * (state&0xFFFFFF1F) == 0x102 || * (state&0xFFFFFF1F) == 0x105) { * } */ - if ((state & 0xFFFFFF00) == 0x100 && (state & 0xFFFFFF1F) != 0x106 && + if ((state & 0xFFFFFF00) == 0x100 && ((state & 0xFFFFFF1F) != 0x106 || has_pps) && (state & 0xFFFFFF1F) != 0x107 && (state & 0xFFFFFF1F) != 0x108 && (state & 0xFFFFFF1F) != 0x109 && (state & 0xFFFFFF1F) != 0x10d && (state & 0xFFFFFF1F) != 0x10f) {