Commit bf7ed956 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'adf8227c'

* commit 'adf8227c':
  vc-1: Add platform-specific start code search routine to VC1DSPContext.

Conflicts:
	configure
	libavcodec/arm/vc1dsp_init_arm.c
	libavcodec/vc1dsp.c
	libavcodec/vc1dsp.h

See: 9d8ecdd8Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 77aafadc adf8227c
...@@ -2194,7 +2194,7 @@ twinvq_decoder_select="mdct lsp sinewin" ...@@ -2194,7 +2194,7 @@ twinvq_decoder_select="mdct lsp sinewin"
utvideo_decoder_select="bswapdsp" utvideo_decoder_select="bswapdsp"
utvideo_encoder_select="bswapdsp huffman huffyuvencdsp" utvideo_encoder_select="bswapdsp huffman huffyuvencdsp"
vble_decoder_select="huffyuvdsp" 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" vc1image_decoder_select="vc1_decoder"
vorbis_decoder_select="mdct" vorbis_decoder_select="mdct"
vorbis_encoder_select="mdct" vorbis_encoder_select="mdct"
...@@ -2301,7 +2301,7 @@ h264_parser_select="h264_decoder" ...@@ -2301,7 +2301,7 @@ h264_parser_select="h264_decoder"
hevc_parser_select="hevc_decoder" hevc_parser_select="hevc_decoder"
mpegvideo_parser_select="mpegvideo" mpegvideo_parser_select="mpegvideo"
mpeg4video_parser_select="error_resilience h263dsp mpeg_er mpegvideo qpeldsp" 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 # external libraries
libaacplus_encoder_deps="libaacplus" libaacplus_encoder_deps="libaacplus"
......
...@@ -478,7 +478,7 @@ OBJS-$(CONFIG_VB_DECODER) += vb.o ...@@ -478,7 +478,7 @@ OBJS-$(CONFIG_VB_DECODER) += vb.o
OBJS-$(CONFIG_VBLE_DECODER) += vble.o OBJS-$(CONFIG_VBLE_DECODER) += vble.o
OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1.o vc1data.o vc1dsp.o \ OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1.o vc1data.o vc1dsp.o \
msmpeg4dec.o msmpeg4.o msmpeg4data.o \ msmpeg4dec.o msmpeg4.o msmpeg4data.o \
wmv2dsp.o startcode.o wmv2dsp.o
OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o
OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o
OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdvideo.o OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdvideo.o
...@@ -806,7 +806,7 @@ OBJS-$(CONFIG_RV40_PARSER) += rv34_parser.o ...@@ -806,7 +806,7 @@ OBJS-$(CONFIG_RV40_PARSER) += rv34_parser.o
OBJS-$(CONFIG_TAK_PARSER) += tak_parser.o tak.o OBJS-$(CONFIG_TAK_PARSER) += tak_parser.o tak.o
OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o vc1dsp.o \ OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o vc1dsp.o \
msmpeg4.o msmpeg4data.o mpeg4video.o \ msmpeg4.o msmpeg4data.o mpeg4video.o \
h263.o startcode.o h263.o
OBJS-$(CONFIG_VORBIS_PARSER) += vorbis_parser.o xiph.o OBJS-$(CONFIG_VORBIS_PARSER) += vorbis_parser.o xiph.o
OBJS-$(CONFIG_VP3_PARSER) += vp3_parser.o OBJS-$(CONFIG_VP3_PARSER) += vp3_parser.o
OBJS-$(CONFIG_VP8_PARSER) += vp8_parser.o OBJS-$(CONFIG_VP8_PARSER) += vp8_parser.o
......
...@@ -66,8 +66,6 @@ ARMV6-OBJS-$(CONFIG_PIXBLOCKDSP) += arm/pixblockdsp_armv6.o ...@@ -66,8 +66,6 @@ ARMV6-OBJS-$(CONFIG_PIXBLOCKDSP) += arm/pixblockdsp_armv6.o
ARMV6-OBJS-$(CONFIG_MLP_DECODER) += arm/mlpdsp_armv6.o ARMV6-OBJS-$(CONFIG_MLP_DECODER) += arm/mlpdsp_armv6.o
ARMV6-OBJS-$(CONFIG_STARTCODE) += arm/startcode_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 \ ARMV6-OBJS-$(CONFIG_VP7_DECODER) += arm/vp8_armv6.o \
arm/vp8dsp_init_armv6.o \ arm/vp8dsp_init_armv6.o \
arm/vp8dsp_armv6.o arm/vp8dsp_armv6.o
......
...@@ -20,17 +20,16 @@ ...@@ -20,17 +20,16 @@
#include "libavutil/attributes.h" #include "libavutil/attributes.h"
#include "libavutil/arm/cpu.h" #include "libavutil/arm/cpu.h"
#include "libavcodec/arm/startcode.h"
#include "libavcodec/vc1dsp.h" #include "libavcodec/vc1dsp.h"
#include "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) av_cold void ff_vc1dsp_init_arm(VC1DSPContext *dsp)
{ {
int cpu_flags = av_get_cpu_flags(); int cpu_flags = av_get_cpu_flags();
if (have_armv6(cpu_flags)) if (have_setend(cpu_flags))
dsp->vc1_find_start_code_candidate = ff_startcode_find_candidate_armv6; dsp->startcode_find_candidate = ff_startcode_find_candidate_armv6;
if (have_neon(cpu_flags)) if (have_neon(cpu_flags))
ff_vc1dsp_init_neon(dsp); ff_vc1dsp_init_neon(dsp);
} }
...@@ -173,7 +173,7 @@ static int vc1_parse(AVCodecParserContext *s, ...@@ -173,7 +173,7 @@ static int vc1_parse(AVCodecParserContext *s,
if (unesc_index >= UNESCAPED_THRESHOLD && !start_code_found) { if (unesc_index >= UNESCAPED_THRESHOLD && !start_code_found) {
while (i < buf_size) { while (i < buf_size) {
if (search_state == NO_MATCH) { 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) { if (i < buf_size) {
search_state = ONE_ZERO; search_state = ONE_ZERO;
} }
......
...@@ -1025,7 +1025,7 @@ av_cold void ff_vc1dsp_init(VC1DSPContext *dsp) ...@@ -1025,7 +1025,7 @@ av_cold void ff_vc1dsp_init(VC1DSPContext *dsp)
dsp->sprite_v_double_twoscale = sprite_v_double_twoscale_c; dsp->sprite_v_double_twoscale = sprite_v_double_twoscale_c;
#endif /* CONFIG_WMV3IMAGE_DECODER || CONFIG_VC1IMAGE_DECODER */ #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) if (ARCH_AARCH64)
ff_vc1dsp_init_aarch64(dsp); ff_vc1dsp_init_aarch64(dsp);
......
...@@ -80,7 +80,7 @@ typedef struct VC1DSPContext { ...@@ -80,7 +80,7 @@ typedef struct VC1DSPContext {
* to filter out any zero bytes that are known to not be followed by * to filter out any zero bytes that are known to not be followed by
* one or more further zero bytes and a one byte. * 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; } VC1DSPContext;
void ff_vc1dsp_init(VC1DSPContext* c); void ff_vc1dsp_init(VC1DSPContext* c);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment