mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
build: conditionally compile x86 H.264 chroma optimizations
This commit is contained in:
parent
80f6c0bb95
commit
88b9735753
13
configure
vendored
13
configure
vendored
@ -929,6 +929,7 @@ CONFIG_LIST="
|
||||
golomb
|
||||
gpl
|
||||
gray
|
||||
h264chroma
|
||||
h264dsp
|
||||
h264pred
|
||||
hardcoded_tables
|
||||
@ -1292,7 +1293,7 @@ h263_encoder_select="aandct"
|
||||
h263_vaapi_hwaccel_select="vaapi h263_decoder"
|
||||
h263i_decoder_select="h263_decoder"
|
||||
h263p_encoder_select="h263_encoder"
|
||||
h264_decoder_select="golomb h264dsp h264pred"
|
||||
h264_decoder_select="golomb h264chroma h264dsp h264pred"
|
||||
h264_dxva2_hwaccel_deps="dxva2api_h"
|
||||
h264_dxva2_hwaccel_select="dxva2 h264_decoder"
|
||||
h264_vaapi_hwaccel_select="vaapi h264_decoder"
|
||||
@ -1345,14 +1346,14 @@ rv10_decoder_select="h263_decoder"
|
||||
rv10_encoder_select="h263_encoder"
|
||||
rv20_decoder_select="h263_decoder"
|
||||
rv20_encoder_select="h263_encoder"
|
||||
rv30_decoder_select="golomb h264pred"
|
||||
rv40_decoder_select="golomb h264pred"
|
||||
rv30_decoder_select="golomb h264chroma h264pred"
|
||||
rv40_decoder_select="golomb h264chroma h264pred"
|
||||
shorten_decoder_select="golomb"
|
||||
sipr_decoder_select="lsp"
|
||||
snow_decoder_select="dwt"
|
||||
snow_encoder_select="aandct dwt"
|
||||
svq1_encoder_select="aandct"
|
||||
svq3_decoder_select="golomb h264dsp h264pred"
|
||||
svq3_decoder_select="golomb h264chroma h264dsp h264pred"
|
||||
svq3_decoder_suggest="zlib"
|
||||
theora_decoder_select="vp3_decoder"
|
||||
tiff_decoder_suggest="zlib"
|
||||
@ -1360,7 +1361,7 @@ tiff_encoder_suggest="zlib"
|
||||
truehd_decoder_select="mlp_decoder"
|
||||
tscc_decoder_select="zlib"
|
||||
twinvq_decoder_select="mdct lsp sinewin"
|
||||
vc1_decoder_select="h263_decoder"
|
||||
vc1_decoder_select="h263_decoder h264chroma"
|
||||
vc1_dxva2_hwaccel_deps="dxva2api_h DXVA_PictureParameters_wDecodedPictureIndex"
|
||||
vc1_dxva2_hwaccel_select="dxva2 vc1_decoder"
|
||||
vc1_vaapi_hwaccel_select="vaapi vc1_decoder"
|
||||
@ -1397,7 +1398,7 @@ vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
|
||||
vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
|
||||
|
||||
# parsers
|
||||
h264_parser_select="golomb h264dsp h264pred"
|
||||
h264_parser_select="golomb h264chroma h264dsp h264pred"
|
||||
|
||||
# external libraries
|
||||
libdirac_decoder_deps="libdirac !libschroedinger"
|
||||
|
@ -9,6 +9,9 @@ YASM-OBJS-FFT-$(HAVE_SSE) += x86/fft_sse.o
|
||||
YASM-OBJS-$(CONFIG_FFT) += x86/fft_mmx.o \
|
||||
$(YASM-OBJS-FFT-yes)
|
||||
|
||||
YASM-OBJS-$(CONFIG_H264CHROMA) += x86/h264_chromamc.o \
|
||||
x86/h264_chromamc_10bit.o
|
||||
|
||||
MMX-OBJS-$(CONFIG_H264DSP) += x86/h264dsp_mmx.o
|
||||
YASM-OBJS-$(CONFIG_H264DSP) += x86/h264_deblock.o \
|
||||
x86/h264_deblock_10bit.o \
|
||||
@ -48,8 +51,6 @@ MMX-OBJS-$(CONFIG_VP8_DECODER) += x86/vp8dsp-init.o
|
||||
MMX-OBJS-$(HAVE_YASM) += x86/dsputil_yasm.o \
|
||||
x86/deinterlace.o \
|
||||
x86/fmtconvert.o \
|
||||
x86/h264_chromamc.o \
|
||||
x86/h264_chromamc_10bit.o \
|
||||
x86/h264_qpel_10bit.o \
|
||||
$(YASM-OBJS-yes)
|
||||
|
||||
|
@ -2563,7 +2563,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
||||
}
|
||||
|
||||
#if HAVE_YASM
|
||||
if (!high_bit_depth) {
|
||||
if (!high_bit_depth && CONFIG_H264CHROMA) {
|
||||
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_mmx_rnd;
|
||||
c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_mmx;
|
||||
}
|
||||
@ -2667,13 +2667,13 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
||||
SET_QPEL_FUNCS(avg_2tap_qpel, 1, 8, mmx2, );
|
||||
|
||||
#if HAVE_YASM
|
||||
if (!high_bit_depth) {
|
||||
if (!high_bit_depth && CONFIG_H264CHROMA) {
|
||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_mmx2_rnd;
|
||||
c->avg_h264_chroma_pixels_tab[1]= ff_avg_h264_chroma_mc4_mmx2;
|
||||
c->avg_h264_chroma_pixels_tab[2]= ff_avg_h264_chroma_mc2_mmx2;
|
||||
c->put_h264_chroma_pixels_tab[2]= ff_put_h264_chroma_mc2_mmx2;
|
||||
}
|
||||
if (bit_depth == 10) {
|
||||
if (bit_depth == 10 && CONFIG_H264CHROMA) {
|
||||
c->put_h264_chroma_pixels_tab[2]= ff_put_h264_chroma_mc2_10_mmxext;
|
||||
c->avg_h264_chroma_pixels_tab[2]= ff_avg_h264_chroma_mc2_10_mmxext;
|
||||
c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_10_mmxext;
|
||||
@ -2744,7 +2744,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
||||
SET_QPEL_FUNCS(avg_2tap_qpel, 1, 8, 3dnow, );
|
||||
|
||||
#if HAVE_YASM
|
||||
if (!high_bit_depth) {
|
||||
if (!high_bit_depth && CONFIG_H264CHROMA) {
|
||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_3dnow_rnd;
|
||||
c->avg_h264_chroma_pixels_tab[1]= ff_avg_h264_chroma_mc4_3dnow;
|
||||
}
|
||||
@ -2797,8 +2797,10 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
||||
H264_QPEL_FUNCS_10(2, 0, sse2_cache64)
|
||||
H264_QPEL_FUNCS_10(3, 0, sse2_cache64)
|
||||
|
||||
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_10_sse2;
|
||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_10_sse2;
|
||||
if (CONFIG_H264CHROMA) {
|
||||
c->put_h264_chroma_pixels_tab[0] = ff_put_h264_chroma_mc8_10_sse2;
|
||||
c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_10_sse2;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -2827,7 +2829,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
||||
#endif
|
||||
c->add_png_paeth_prediction= add_png_paeth_prediction_ssse3;
|
||||
#if HAVE_YASM
|
||||
if (!high_bit_depth) {
|
||||
if (!high_bit_depth && CONFIG_H264CHROMA) {
|
||||
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_ssse3_rnd;
|
||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_ssse3_rnd;
|
||||
c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_ssse3;
|
||||
@ -2928,8 +2930,10 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
||||
H264_QPEL_FUNCS_10(2, 0, sse2)
|
||||
H264_QPEL_FUNCS_10(3, 0, sse2)
|
||||
|
||||
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_10_avx;
|
||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_10_avx;
|
||||
if (CONFIG_H264CHROMA) {
|
||||
c->put_h264_chroma_pixels_tab[0] = ff_put_h264_chroma_mc8_10_avx;
|
||||
c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_10_avx;
|
||||
}
|
||||
}
|
||||
c->butterflies_float_interleave = ff_butterflies_float_interleave_avx;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user