diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-08-08 12:38:10 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-08-08 12:47:05 +0200 |
commit | c0f2ad3dbdeada7ba43b0510580467718f1334ca (patch) | |
tree | 4793efb53ed74106b572634d86f25808277d48d8 /libavcodec/h264_parser.c | |
parent | 50b7ce12574df47ac5380b05259f10e6b516fb17 (diff) | |
parent | 218d6844b37d339ffbf2044ad07d8be7767e2734 (diff) | |
download | ffmpeg-c0f2ad3dbdeada7ba43b0510580467718f1334ca.tar.gz |
Merge commit '218d6844b37d339ffbf2044ad07d8be7767e2734'
* commit '218d6844b37d339ffbf2044ad07d8be7767e2734':
h264dsp: Factorize code into a new function, h264_find_start_code_candidate
Conflicts:
libavcodec/h264_parser.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264_parser.c')
-rw-r--r-- | libavcodec/h264_parser.c | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c index 1d27fe21d5..a16366a781 100644 --- a/libavcodec/h264_parser.c +++ b/libavcodec/h264_parser.c @@ -65,30 +65,9 @@ static int h264_find_frame_end(H264Context *h, const uint8_t *buf, } if (state == 7) { -#if HAVE_FAST_UNALIGNED - /* we check i < buf_size instead of i + 3 / 7 because it is - * simpler and there must be FF_INPUT_BUFFER_PADDING_SIZE - * bytes at the end. - */ -# if HAVE_FAST_64BIT - while (i < next_avc && - !((~*(const uint64_t *)(buf + i) & - (*(const uint64_t *)(buf + i) - 0x0101010101010101ULL)) & - 0x8080808080808080ULL)) - i += 8; -# else - while (i < next_avc && - !((~*(const uint32_t *)(buf + i) & - (*(const uint32_t *)(buf + i) - 0x01010101U)) & - 0x80808080U)) - i += 4; -# endif -#endif - for (; i < next_avc; i++) - if (!buf[i]) { - state = 2; - break; - } + i += h->h264dsp.h264_find_start_code_candidate(buf + i, next_avc - i); + if (i < next_avc) + state = 2; } else if (state <= 2) { if (buf[i] == 1) state ^= 5; // 2->7, 1->4, 0->5 |