diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-08-03 00:25:07 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-08-03 01:34:01 +0400 |
commit | 9c6e23f5d2f9fa58d54adf35b4cde4e351fb7d64 (patch) | |
tree | 51e742dd00ad34c80a40e60e8fa4ff7a05adef8f /libavcodec | |
parent | 9f14cd91b5195e2beba7213e855c0d36b787ab85 (diff) | |
parent | c728518b3cbb0daf0d0a65ba7adfcb48c5629b93 (diff) |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
x86: fft: fix imdct_half() for AVX
rtmppkt: Add missing libavcodec/bytestream.h include.
rtmp: add functions for reading AMF values
vc1dec: remove useless #include simple_idct.h
dct-test: always link with aandcttab.o
vp8: pack struct VP8ThreadData more efficiently
x86: remove libmpeg2 mmx(ext) idct functions
eamad: Use dsputils instead of a custom bswap16_buf
Canopus Lossless decoder
Conflicts:
Changelog
LICENSE
libavcodec/avcodec.h
libavcodec/cllc.c
libavcodec/eamad.c
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/Makefile | 2 | ||||
-rw-r--r-- | libavcodec/avcodec.h | 2 | ||||
-rw-r--r-- | libavcodec/vc1dec.c | 1 | ||||
-rw-r--r-- | libavcodec/version.h | 2 | ||||
-rw-r--r-- | libavcodec/vp8.h | 34 | ||||
-rw-r--r-- | libavcodec/x86/fft_mmx.asm | 13 |
6 files changed, 30 insertions, 24 deletions
diff --git a/libavcodec/Makefile b/libavcodec/Makefile index b21819bc20..793a9c8312 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -829,7 +829,7 @@ HOSTPROGS = aac_tablegen \ CLEANFILES = *_tables.c *_tables.h *_tablegen$(HOSTEXESUF) -$(SUBDIR)dct-test$(EXESUF): $(SUBDIR)dctref.o +$(SUBDIR)dct-test$(EXESUF): $(SUBDIR)dctref.o $(SUBDIR)aandcttab.o TRIG_TABLES = cos cos_fixed sin TRIG_TABLES := $(TRIG_TABLES:%=$(SUBDIR)%_tables.c) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 7a7400d6c6..cd933fd7cb 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -261,6 +261,7 @@ enum CodecID { CODEC_ID_MSA1, CODEC_ID_TSCC2, CODEC_ID_MTS2, + CODEC_ID_CLLC, CODEC_ID_Y41P = MKBETAG('Y','4','1','P'), CODEC_ID_ESCAPE130 = MKBETAG('E','1','3','0'), CODEC_ID_EXR = MKBETAG('0','E','X','R'), @@ -274,7 +275,6 @@ enum CodecID { CODEC_ID_YUV4 = MKBETAG('Y','U','V','4'), CODEC_ID_SANM = MKBETAG('S','A','N','M'), CODEC_ID_PAF_VIDEO = MKBETAG('P','A','F','V'), - CODEC_ID_CLLC = MKBETAG('C','L','L','C'), /* various PCM "codecs" */ CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index f5fbe54c82..55d695bee2 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -36,7 +36,6 @@ #include "vc1acdata.h" #include "msmpeg4data.h" #include "unary.h" -#include "simple_idct.h" #include "mathops.h" #include "vdpau_internal.h" #include "libavutil/avassert.h" diff --git a/libavcodec/version.h b/libavcodec/version.h index 48096ecb32..cb26975eed 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -27,7 +27,7 @@ */ #define LIBAVCODEC_VERSION_MAJOR 54 -#define LIBAVCODEC_VERSION_MINOR 47 +#define LIBAVCODEC_VERSION_MINOR 48 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ diff --git a/libavcodec/vp8.h b/libavcodec/vp8.h index 23d62af7fa..4f026dfe8d 100644 --- a/libavcodec/vp8.h +++ b/libavcodec/vp8.h @@ -94,21 +94,8 @@ typedef struct { } VP8Macroblock; typedef struct { -#if HAVE_THREADS - pthread_mutex_t lock; - pthread_cond_t cond; -#endif - int thread_nr; - int thread_mb_pos; // (mb_y << 16) | (mb_x & 0xFFFF) - int wait_mb_pos; // What the current thread is waiting on. - uint8_t *edge_emu_buffer; - /** - * For coeff decode, we need to know whether the above block had non-zero - * coefficients. This means for each macroblock, we need data for 4 luma - * blocks, 2 u blocks, 2 v blocks, and the luma dc block, for a total of 9 - * per macroblock. We keep the last row in top_nnz. - */ - DECLARE_ALIGNED(8, uint8_t, left_nnz)[9]; + DECLARE_ALIGNED(16, DCTELEM, block)[6][4][16]; + DECLARE_ALIGNED(16, DCTELEM, block_dc)[16]; /** * This is the index plus one of the last non-zero coeff * for each of the blocks in the current macroblock. @@ -117,8 +104,21 @@ typedef struct { * 2+-> full transform */ DECLARE_ALIGNED(16, uint8_t, non_zero_count_cache)[6][4]; - DECLARE_ALIGNED(16, DCTELEM, block)[6][4][16]; - DECLARE_ALIGNED(16, DCTELEM, block_dc)[16]; + /** + * For coeff decode, we need to know whether the above block had non-zero + * coefficients. This means for each macroblock, we need data for 4 luma + * blocks, 2 u blocks, 2 v blocks, and the luma dc block, for a total of 9 + * per macroblock. We keep the last row in top_nnz. + */ + DECLARE_ALIGNED(8, uint8_t, left_nnz)[9]; + int thread_nr; +#if HAVE_THREADS + pthread_mutex_t lock; + pthread_cond_t cond; +#endif + int thread_mb_pos; // (mb_y << 16) | (mb_x & 0xFFFF) + int wait_mb_pos; // What the current thread is waiting on. + uint8_t *edge_emu_buffer; VP8FilterStrength *filter_strength; } VP8ThreadData; diff --git a/libavcodec/x86/fft_mmx.asm b/libavcodec/x86/fft_mmx.asm index 8392817bed..73234388ab 100644 --- a/libavcodec/x86/fft_mmx.asm +++ b/libavcodec/x86/fft_mmx.asm @@ -1010,7 +1010,11 @@ cglobal imdct_half, 3,12,8; FFTContext *s, FFTSample *output, const FFTSample *i push rrevtab %endif - sub r3, mmsize/4 +%if mmsize == 8 + sub r3, 2 +%else + sub r3, 4 +%endif %if ARCH_X86_64 || mmsize == 8 xor r4, r4 sub r4, r3 @@ -1037,7 +1041,9 @@ cglobal imdct_half, 3,12,8; FFTContext *s, FFTSample *output, const FFTSample *i mova [r1+r5*8], m0 mova [r1+r6*8], m2 add r4, 2 -%elif ARCH_X86_64 + sub r4, 2 +%else +%if ARCH_X86_64 movzx r5, word [rrevtab+r4-4] movzx r6, word [rrevtab+r4-2] movzx r10, word [rrevtab+r3] @@ -1058,7 +1064,8 @@ cglobal imdct_half, 3,12,8; FFTContext *s, FFTSample *output, const FFTSample *i movlps [r1+r5*8], xmm1 movhps [r1+r4*8], xmm1 %endif - sub r3, mmsize/4 + sub r3, 4 +%endif jns .pre mov r5, r0 |