diff --git a/configure b/configure index 2f2d03ec0c620e96bac89c6ba2b8dab2846e0df3..ae677165ae892f6997ebf7988785626affc336de 100755 --- a/configure +++ b/configure @@ -2194,7 +2194,7 @@ twinvq_decoder_select="mdct lsp sinewin" utvideo_decoder_select="bswapdsp" utvideo_encoder_select="bswapdsp huffman huffyuvencdsp" vble_decoder_select="huffyuvdsp" -vc1_decoder_select="blockdsp error_resilience h263_decoder h264chroma h264qpel intrax8 mpeg_er qpeldsp" +vc1_decoder_select="blockdsp error_resilience h263_decoder h264chroma h264qpel intrax8 mpeg_er qpeldsp startcode" vc1image_decoder_select="vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="mdct" @@ -2301,7 +2301,7 @@ h264_parser_select="h264_decoder" hevc_parser_select="hevc_decoder" mpegvideo_parser_select="mpegvideo" mpeg4video_parser_select="error_resilience h263dsp mpeg_er mpegvideo qpeldsp" -vc1_parser_select="mpegvideo vc1_decoder" +vc1_parser_select="mpegvideo startcode vc1_decoder" # external libraries libaacplus_encoder_deps="libaacplus" diff --git a/libavcodec/Makefile b/libavcodec/Makefile index c73eb83f34cd15b0396629c0046591b31ef265f7..6873439e3d34e20d999b347f83a11f123e0fe942 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -478,7 +478,7 @@ OBJS-$(CONFIG_VB_DECODER) += vb.o OBJS-$(CONFIG_VBLE_DECODER) += vble.o OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1.o vc1data.o vc1dsp.o \ msmpeg4dec.o msmpeg4.o msmpeg4data.o \ - wmv2dsp.o startcode.o + wmv2dsp.o OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdvideo.o @@ -806,7 +806,7 @@ OBJS-$(CONFIG_RV40_PARSER) += rv34_parser.o OBJS-$(CONFIG_TAK_PARSER) += tak_parser.o tak.o OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o vc1dsp.o \ msmpeg4.o msmpeg4data.o mpeg4video.o \ - h263.o startcode.o + h263.o OBJS-$(CONFIG_VORBIS_PARSER) += vorbis_parser.o xiph.o OBJS-$(CONFIG_VP3_PARSER) += vp3_parser.o OBJS-$(CONFIG_VP8_PARSER) += vp8_parser.o diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile index 3daf21104d06524c98addde1f0730c6b5d3927cf..41485b38d24ad447d7e838feb0e405951a7dcd79 100644 --- a/libavcodec/arm/Makefile +++ b/libavcodec/arm/Makefile @@ -66,8 +66,6 @@ ARMV6-OBJS-$(CONFIG_PIXBLOCKDSP) += arm/pixblockdsp_armv6.o ARMV6-OBJS-$(CONFIG_MLP_DECODER) += arm/mlpdsp_armv6.o ARMV6-OBJS-$(CONFIG_STARTCODE) += arm/startcode_armv6.o -ARMV6-OBJS-$(CONFIG_VC1_DECODER) += arm/startcode_armv6.o -ARMV6-OBJS-$(CONFIG_VC1_PARSER) += arm/startcode_armv6.o ARMV6-OBJS-$(CONFIG_VP7_DECODER) += arm/vp8_armv6.o \ arm/vp8dsp_init_armv6.o \ arm/vp8dsp_armv6.o diff --git a/libavcodec/arm/vc1dsp_init_arm.c b/libavcodec/arm/vc1dsp_init_arm.c index 4a848484631895233a8925bbced3f3fe9ffb9eff..9dae22c822756a4d9c0e5aadce75210b04f6a125 100644 --- a/libavcodec/arm/vc1dsp_init_arm.c +++ b/libavcodec/arm/vc1dsp_init_arm.c @@ -20,17 +20,16 @@ #include "libavutil/attributes.h" #include "libavutil/arm/cpu.h" +#include "libavcodec/arm/startcode.h" #include "libavcodec/vc1dsp.h" #include "vc1dsp.h" -int ff_startcode_find_candidate_armv6(const uint8_t *buf, int size); - av_cold void ff_vc1dsp_init_arm(VC1DSPContext *dsp) { int cpu_flags = av_get_cpu_flags(); - if (have_armv6(cpu_flags)) - dsp->vc1_find_start_code_candidate = ff_startcode_find_candidate_armv6; + if (have_setend(cpu_flags)) + dsp->startcode_find_candidate = ff_startcode_find_candidate_armv6; if (have_neon(cpu_flags)) ff_vc1dsp_init_neon(dsp); } diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c index 0021febaf56bd569a6aa173b7e28d0cfa84b248a..c68981fa305581cc1ef3dd7b6879240501f5988d 100644 --- a/libavcodec/vc1_parser.c +++ b/libavcodec/vc1_parser.c @@ -173,7 +173,7 @@ static int vc1_parse(AVCodecParserContext *s, if (unesc_index >= UNESCAPED_THRESHOLD && !start_code_found) { while (i < buf_size) { if (search_state == NO_MATCH) { - i += vpc->v.vc1dsp.vc1_find_start_code_candidate(buf + i, buf_size - i); + i += vpc->v.vc1dsp.startcode_find_candidate(buf + i, buf_size - i); if (i < buf_size) { search_state = ONE_ZERO; } diff --git a/libavcodec/vc1dsp.c b/libavcodec/vc1dsp.c index fae9daec6a854e9c7887999adf344e51f87a44d5..73e10012796ea599426556000f841d6b2f6b6d62 100644 --- a/libavcodec/vc1dsp.c +++ b/libavcodec/vc1dsp.c @@ -1025,7 +1025,7 @@ av_cold void ff_vc1dsp_init(VC1DSPContext *dsp) dsp->sprite_v_double_twoscale = sprite_v_double_twoscale_c; #endif /* CONFIG_WMV3IMAGE_DECODER || CONFIG_VC1IMAGE_DECODER */ - dsp->vc1_find_start_code_candidate = ff_startcode_find_candidate_c; + dsp->startcode_find_candidate = ff_startcode_find_candidate_c; if (ARCH_AARCH64) ff_vc1dsp_init_aarch64(dsp); diff --git a/libavcodec/vc1dsp.h b/libavcodec/vc1dsp.h index aa5b6d34fd7a98721ab54f7095e1f00ab553e696..e2f75ac7dcf3cd754aa6bad2739826be4244483d 100644 --- a/libavcodec/vc1dsp.h +++ b/libavcodec/vc1dsp.h @@ -80,7 +80,7 @@ typedef struct VC1DSPContext { * to filter out any zero bytes that are known to not be followed by * one or more further zero bytes and a one byte. */ - int (*vc1_find_start_code_candidate)(const uint8_t *buf, int size); + int (*startcode_find_candidate)(const uint8_t *buf, int size); } VC1DSPContext; void ff_vc1dsp_init(VC1DSPContext* c);