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 <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-11-12 03:27:26 +01:00
parent 12aab852c5
commit 9d6ad68fa4
1 changed files with 4 additions and 1 deletions

View File

@ -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) {