Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-10-27 06:24:20 +0300
committerMichael Niedermayer <michaelni@gmx.at>2014-11-01 18:27:12 +0300
commit5405ba7b635b23e565a308172771441ac76d1362 (patch)
treeace476886b77d1989175fc864c9213d80c0091cd
parent70f6d553d98e6f40f36ac1a85698e079629f7d0e (diff)
avcodec/h264: simplify find_start_code()
this also uses avpriv_find_start_code(), though no speed change is expected as the area searched is generally small Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 3b678da5e386c138316954e867d595f946666051) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/h264.h16
1 files changed, 4 insertions, 12 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index d0d818c45f..b94f06b6d1 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -36,6 +36,7 @@
#include "h264dsp.h"
#include "h264pred.h"
#include "h264qpel.h"
+#include "internal.h" // for avpriv_find_start_code()
#include "me_cmp.h"
#include "mpegutils.h"
#include "parser.h"
@@ -1095,20 +1096,11 @@ static av_always_inline int get_dct8x8_allowed(H264Context *h)
static inline int find_start_code(const uint8_t *buf, int buf_size,
int buf_index, int next_avc)
{
- // start code prefix search
- for (; buf_index + 3 < next_avc; buf_index++)
- // This should always succeed in the first iteration.
- if (buf[buf_index] == 0 &&
- buf[buf_index + 1] == 0 &&
- buf[buf_index + 2] == 1)
- break;
+ uint32_t state = -1;
- buf_index += 3;
+ buf_index = avpriv_find_start_code(buf + buf_index, buf + next_avc + 1, &state) - buf - 1;
- if (buf_index >= buf_size)
- return buf_size;
-
- return buf_index;
+ return FFMIN(buf_index, buf_size);
}
static inline int get_avc_nalsize(H264Context *h, const uint8_t *buf,