summaryrefslogtreecommitdiff
path: root/libavcodec/h264_parser.c
diff options
context:
space:
mode:
authorJohn Stebbins <stebbins@jetheaddev.com>2014-10-31 08:24:38 -0700
committerVittorio Giovara <vittorio.giovara@gmail.com>2014-11-11 11:49:55 +0100
commit1b667269062eb6aec0b8726393ea91b7f7f57fde (patch)
tree4d3a48579177e8a493649cbcf1d996eeac1479b9 /libavcodec/h264_parser.c
parent4cb9f1a77432de6f368df69bebbc082368a88c86 (diff)
h264_parser: don't stop on SPS_EXT in split
Add SPS_EXT, SEI, and subset SPS to codes that are skipped during split. These codes can come before the PPS and results in incomplete extradata.
Diffstat (limited to 'libavcodec/h264_parser.c')
-rw-r--r--libavcodec/h264_parser.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index 145dce3b0c..2ed3dd0e17 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -473,8 +473,10 @@ static int h264_split(AVCodecContext *avctx,
* (state&0xFFFFFF1F) == 0x105) {
* }
*/
- if ((state & 0xFFFFFF00) == 0x100 && (state & 0xFFFFFF1F) != 0x107 &&
- (state & 0xFFFFFF1F) != 0x108 && (state & 0xFFFFFF1F) != 0x109) {
+ if ((state & 0xFFFFFF00) == 0x100 && (state & 0xFFFFFF1F) != 0x106 &&
+ (state & 0xFFFFFF1F) != 0x107 && (state & 0xFFFFFF1F) != 0x108 &&
+ (state & 0xFFFFFF1F) != 0x109 && (state & 0xFFFFFF1F) != 0x10d &&
+ (state & 0xFFFFFF1F) != 0x10f) {
if (has_sps) {
while (i > 4 && buf[i - 5] == 0)
i--;