[FFmpeg-cvslog] avcodec/h264_parser: Avoid adding SEI to the global header
Michael Niedermayer
git at videolan.org
Wed Nov 12 03:40:35 CET 2014
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Nov 12 03:27:26 2014 +0100| [9d6ad68fa445b5e160a9277c250cf3238c373a3a] | committer: Michael Niedermayer
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 at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9d6ad68fa445b5e160a9277c250cf3238c373a3a
---
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 d0592ad..6e87efa 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) {
More information about the ffmpeg-cvslog
mailing list