From 75644335b907919057960716508477239c26fed4 Mon Sep 17 00:00:00 2001 From: Martin Storsjö Date: Mon, 25 Mar 2013 12:42:57 +0200 Subject: lavc: Move start code finding to utils.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows dropping the mpegvideo dependency from a number of components. This also fixes standalone building of the h264 parser, which was broken in 64e438697. Signed-off-by: Martin Storsjö --- libavcodec/mpegvideo.c | 33 --------------------------------- libavcodec/utils.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 33 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index dab1485fcc..5635c26c83 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -158,39 +158,6 @@ static void mpeg_er_decode_mb(void *opaque, int ref, int mv_dir, int mv_type, ff_MPV_decode_mb(s, s->block); } -const uint8_t *avpriv_mpv_find_start_code(const uint8_t *restrict p, - const uint8_t *end, - uint32_t * restrict state) -{ - int i; - - assert(p <= end); - if (p >= end) - return end; - - for (i = 0; i < 3; i++) { - uint32_t tmp = *state << 8; - *state = tmp + *(p++); - if (tmp == 0x100 || p == end) - return p; - } - - while (p < end) { - if (p[-1] > 1 ) p += 3; - else if (p[-2] ) p += 2; - else if (p[-3]|(p[-1]-1)) p++; - else { - p++; - break; - } - } - - p = FFMIN(p, end) - 4; - *state = AV_RB32(p); - - return p + 4; -} - /* init common dct for both encoder and decoder */ av_cold int ff_dct_common_init(MpegEncContext *s) { diff --git a/libavcodec/utils.c b/libavcodec/utils.c index e18f42d99a..d8ebda61dc 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -39,6 +39,7 @@ #include "avcodec.h" #include "dsputil.h" #include "libavutil/opt.h" +#include "mpegvideo.h" #include "thread.h" #include "internal.h" #include "bytestream.h" @@ -2197,3 +2198,36 @@ int avcodec_is_open(AVCodecContext *s) { return !!s->internal; } + +const uint8_t *avpriv_mpv_find_start_code(const uint8_t *restrict p, + const uint8_t *end, + uint32_t * restrict state) +{ + int i; + + assert(p <= end); + if (p >= end) + return end; + + for (i = 0; i < 3; i++) { + uint32_t tmp = *state << 8; + *state = tmp + *(p++); + if (tmp == 0x100 || p == end) + return p; + } + + while (p < end) { + if (p[-1] > 1 ) p += 3; + else if (p[-2] ) p += 2; + else if (p[-3]|(p[-1]-1)) p++; + else { + p++; + break; + } + } + + p = FFMIN(p, end) - 4; + *state = AV_RB32(p); + + return p + 4; +} -- cgit v1.2.3