mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Merge commit 'adf8227cf4e7b4fccb2ad88e1e09b6dc00dd00ed'
* commit 'adf8227cf4e7b4fccb2ad88e1e09b6dc00dd00ed':
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: 9d8ecdd8ca
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
bf7ed956ff
4
configure
vendored
4
configure
vendored
@ -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"
|
|||||||
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
|
|||||||
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
|
|||||||
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
|
|||||||
|
|
||||||
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 @@
|
|||||||
|
|
||||||
#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,
|
|||||||
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)
|
|||||||
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 {
|
|||||||
* 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);
|
||||||
|
Loading…
Reference in New Issue
Block a user