diff options
author | XhmikosR <xhmikosr@users.sourceforge.net> | 2010-07-07 21:54:23 +0400 |
---|---|---|
committer | XhmikosR <xhmikosr@users.sourceforge.net> | 2010-07-07 21:54:23 +0400 |
commit | fdcb5f8d509f1e856710afde13b7982c6b79f9e8 (patch) | |
tree | 09a52e65f0b71e561e7075a88b38dc2971369864 /src/filters/transform/MPCVideoDec | |
parent | 44d1019bc74c681a920c2994c53a34b3bf642899 (diff) |
updated ffmpeg
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@2110 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/transform/MPCVideoDec')
7 files changed, 24 insertions, 6 deletions
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/config.h b/src/filters/transform/MPCVideoDec/ffmpeg/config.h index 22020397f..33a01e1af 100644 --- a/src/filters/transform/MPCVideoDec/ffmpeg/config.h +++ b/src/filters/transform/MPCVideoDec/ffmpeg/config.h @@ -56,7 +56,7 @@ // MPC custom code for linking with MSVC
#if defined(__GNUC__) && ARCH_X86_64
-#define EXTERN_PREFIX ""
+#define EXTERN_PREFIX ""
#else
#define EXTERN_PREFIX "_"
#endif
@@ -114,6 +114,7 @@ #define cbrtf(x) pow((float)x, (float)1.0/3)
#endif
+#define CONFIG_DCT 0
#define CONFIG_DWT 0
#define CONFIG_HARDCODED_TABLES 0
#define CONFIG_GPL 1
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcproj b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcproj index e1a681706..ea9eb6b6f 100644 --- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcproj +++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcproj @@ -50,9 +50,6 @@ PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_NONSTDC_NO_WARNINGS;_DEBUG;_WINDOWS;HAVE_AV_CONFIG_H;H264_MERGE_TESTING"
ExceptionHandling="0"
OpenMP="false"
- AssemblerListingLocation="$(IntDir)\"
- ObjectFile="$(IntDir)\"
- ProgramDataBaseFileName="$(IntDir)\"
WarningLevel="0"
DebugInformationFormat="4"
DisableSpecificWarnings="4996"
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/fft.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/fft.h index ce2b99adc..eb6714fe9 100644 --- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/fft.h +++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/fft.h @@ -112,6 +112,7 @@ void ff_fft_calc_c(FFTContext *s, FFTComplex *z); void ff_fft_init_altivec(FFTContext *s); void ff_fft_init_mmx(FFTContext *s); void ff_fft_init_arm(FFTContext *s); +void ff_dct_init_mmx(DCTContext *s); /** * Do the permutation needed BEFORE calling ff_fft_calc(). @@ -209,6 +210,8 @@ struct RDFTContext { int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans); void ff_rdft_end(RDFTContext *s); +void ff_rdft_init_arm(RDFTContext *s); + static av_always_inline void ff_rdft_calc(RDFTContext *s, FFTSample *data) { s->rdft_calc(s, data); @@ -223,6 +226,7 @@ struct DCTContext { const float *costab; FFTSample *csc2; void (*dct_calc)(struct DCTContext *s, FFTSample *data); + void (*dct32)(FFTSample *out, const FFTSample *in); }; /** diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1_dxva.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1_dxva.c index 4ce4d092c..080a4ff96 100644 --- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1_dxva.c +++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1_dxva.c @@ -16,8 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-int av_vc1_decode_frame(AVCodecContext *avctx,
- uint8_t *buf, int buf_size)
+int av_vc1_decode_frame(AVCodecContext *avctx, const uint8_t *buf, int buf_size)
{
VC1Context *v = avctx->priv_data;
MpegEncContext *s = &v->s;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.c index 475071b47..dba8c3faf 100644 --- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.c +++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.c @@ -46,3 +46,13 @@ av_cold void ff_fft_init_mmx(FFTContext *s) } #endif } + +#if CONFIG_DCT +av_cold void ff_dct_init_mmx(DCTContext *s) +{ + int has_vectors = mm_support(); + if (has_vectors & FF_MM_SSE && HAVE_SSE) + s->dct32 = ff_dct32_float_sse; +} +#endif + diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.h index 7ef583914..2affacb62 100644 --- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.h +++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.h @@ -32,5 +32,6 @@ void ff_imdct_calc_3dn2(FFTContext *s, FFTSample *output, const FFTSample *input void ff_imdct_half_3dn2(FFTContext *s, FFTSample *output, const FFTSample *input); void ff_imdct_calc_sse(FFTContext *s, FFTSample *output, const FFTSample *input); void ff_imdct_half_sse(FFTContext *s, FFTSample *output, const FFTSample *input); +void ff_dct32_float_sse(FFTSample *out, const FFTSample *in); #endif diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp-init.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp-init.c index 9cd72b695..4111c7260 100644 --- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp-init.c +++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp-init.c @@ -276,12 +276,14 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c) * is only used for luma, and luma is always a copy or sixtap. */ if (mm_flags & FF_MM_MMX2) { c->vp8_luma_dc_wht = ff_vp8_luma_dc_wht_mmxext; +#if ARCH_X86_32 VP8_LUMA_MC_FUNC(0, 16, mmxext); VP8_MC_FUNC(1, 8, mmxext); VP8_MC_FUNC(2, 4, mmxext); VP8_BILINEAR_MC_FUNC(0, 16, mmxext); VP8_BILINEAR_MC_FUNC(1, 8, mmxext); VP8_BILINEAR_MC_FUNC(2, 4, mmxext); +#endif c->vp8_v_loop_filter_simple = ff_vp8_v_loop_filter_simple_mmxext; c->vp8_h_loop_filter_simple = ff_vp8_h_loop_filter_simple_mmxext; @@ -293,22 +295,26 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c) } if (mm_flags & FF_MM_SSE2) { +#if ARCH_X86_32 VP8_LUMA_MC_FUNC(0, 16, sse2); VP8_MC_FUNC(1, 8, sse2); VP8_BILINEAR_MC_FUNC(0, 16, sse2); VP8_BILINEAR_MC_FUNC(1, 8, sse2); +#endif c->vp8_v_loop_filter_simple = ff_vp8_v_loop_filter_simple_sse2; c->vp8_h_loop_filter_simple = ff_vp8_h_loop_filter_simple_sse2; } if (mm_flags & FF_MM_SSSE3) { +#if ARCH_X86_32 VP8_LUMA_MC_FUNC(0, 16, ssse3); VP8_MC_FUNC(1, 8, ssse3); VP8_MC_FUNC(2, 4, ssse3); VP8_BILINEAR_MC_FUNC(0, 16, ssse3); VP8_BILINEAR_MC_FUNC(1, 8, ssse3); VP8_BILINEAR_MC_FUNC(2, 4, ssse3); +#endif } if (mm_flags & FF_MM_SSE4) { |