Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-08-03 00:25:07 +0400
committerMichael Niedermayer <michaelni@gmx.at>2012-08-03 01:34:01 +0400
commit9c6e23f5d2f9fa58d54adf35b4cde4e351fb7d64 (patch)
tree51e742dd00ad34c80a40e60e8fa4ff7a05adef8f /libavcodec
parent9f14cd91b5195e2beba7213e855c0d36b787ab85 (diff)
parentc728518b3cbb0daf0d0a65ba7adfcb48c5629b93 (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/Makefile2
-rw-r--r--libavcodec/avcodec.h2
-rw-r--r--libavcodec/vc1dec.c1
-rw-r--r--libavcodec/version.h2
-rw-r--r--libavcodec/vp8.h34
-rw-r--r--libavcodec/x86/fft_mmx.asm13
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