* commit '28c8e288fa0342fdef532a7522a4707bebf831cc': x86: h264_chromamc: port to cpuflags yop: fix typo avconv: fix copying per-stream metadata. doc: avtools-common-opts: Fix terminology concerning metric prefixes configure: suncc: Add compiler arch support for Nehalem & Sandy Bridge riff: Make ff_riff_tags static and move under appropriate #ifdef Conflicts: libavformat/riff.c Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n1.1
@@ -2458,6 +2458,8 @@ suncc_flags(){ | |||||
prescott|nocona) echo -xarch=sse3 -xchip=pentium4 ;; | prescott|nocona) echo -xarch=sse3 -xchip=pentium4 ;; | ||||
*-sse3) echo -xarch=sse3 ;; | *-sse3) echo -xarch=sse3 ;; | ||||
core2) echo -xarch=ssse3 -xchip=core2 ;; | core2) echo -xarch=ssse3 -xchip=core2 ;; | ||||
corei7) echo -xarch=sse4_2 -xchip=nehalem ;; | |||||
corei7-avx) echo -xarch=avx -xchip=sandybridge ;; | |||||
amdfam10|barcelona|bdver*) echo -xarch=sse4_1 ;; | amdfam10|barcelona|bdver*) echo -xarch=sse4_1 ;; | ||||
athlon-4|athlon-[mx]p) echo -xarch=ssea ;; | athlon-4|athlon-[mx]p) echo -xarch=ssea ;; | ||||
k8|opteron|athlon64|athlon-fx) | k8|opteron|athlon64|athlon-fx) | ||||
@@ -2955,7 +2957,7 @@ elif enabled x86; then | |||||
disable cmov | disable cmov | ||||
;; | ;; | ||||
# targets that do support conditional mov (cmov) | # targets that do support conditional mov (cmov) | ||||
i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|amdfam10|barcelona|atom|bdver*) | |||||
i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|corei7*|amdfam10|barcelona|atom|bdver*) | |||||
cpuflags="-march=$cpu" | cpuflags="-march=$cpu" | ||||
enable cmov | enable cmov | ||||
enable fast_cmov | enable fast_cmov | ||||
@@ -1,10 +1,11 @@ | |||||
All the numerical options, if not specified otherwise, accept in input | All the numerical options, if not specified otherwise, accept in input | ||||
a string representing a number, which may contain one of the | a string representing a number, which may contain one of the | ||||
International System number postfixes, for example 'K', 'M', 'G'. | |||||
If 'i' is appended after the postfix, powers of 2 are used instead of | |||||
powers of 10. The 'B' postfix multiplies the value for 8, and can be | |||||
appended after another postfix or used alone. This allows using for | |||||
example 'KB', 'MiB', 'G' and 'B' as postfix. | |||||
SI unit prefixes, for example 'K', 'M', 'G'. | |||||
If 'i' is appended after the prefix, binary prefixes are used, | |||||
which are based on powers of 1024 instead of powers of 1000. | |||||
The 'B' postfix multiplies the value by 8, and can be | |||||
appended after a unit prefix or used alone. This allows using for | |||||
example 'KB', 'MiB', 'G' and 'B' as number postfix. | |||||
Options which do not take arguments are boolean options, and set the | Options which do not take arguments are boolean options, and set the | ||||
corresponding value to true. They can be set to false by prefixing | corresponding value to true. They can be set to false by prefixing | ||||
@@ -456,9 +456,9 @@ static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFor | |||||
METADATA_CHECK_INDEX(index, context->nb_programs, "program")\ | METADATA_CHECK_INDEX(index, context->nb_programs, "program")\ | ||||
meta = &context->programs[index]->metadata;\ | meta = &context->programs[index]->metadata;\ | ||||
break;\ | break;\ | ||||
default: av_assert0(0);\ | |||||
case 's':\ | case 's':\ | ||||
break;\ | |||||
break; /* handled separately below */ \ | |||||
default: av_assert0(0);\ | |||||
}\ | }\ | ||||
SET_DICT(type_in, meta_in, ic, idx_in); | SET_DICT(type_in, meta_in, ic, idx_in); | ||||
@@ -89,7 +89,7 @@ SECTION .text | |||||
jne .next4rows | jne .next4rows | ||||
%endmacro | %endmacro | ||||
%macro chroma_mc8_mmx_func 3 | |||||
%macro chroma_mc8_mmx_func 2-3 | |||||
%ifidn %2, rv40 | %ifidn %2, rv40 | ||||
%ifdef PIC | %ifdef PIC | ||||
%define rnd_1d_rv40 r8 | %define rnd_1d_rv40 r8 | ||||
@@ -103,9 +103,9 @@ SECTION .text | |||||
%else | %else | ||||
%define extra_regs 0 | %define extra_regs 0 | ||||
%endif ; rv40 | %endif ; rv40 | ||||
; put/avg_h264_chroma_mc8_mmx_*(uint8_t *dst /*align 8*/, uint8_t *src /*align 1*/, | |||||
; int stride, int h, int mx, int my) | |||||
cglobal %1_%2_chroma_mc8_%3, 6, 7 + extra_regs, 0 | |||||
; put/avg_h264_chroma_mc8_*(uint8_t *dst /*align 8*/, uint8_t *src /*align 1*/, | |||||
; int stride, int h, int mx, int my) | |||||
cglobal %1_%2_chroma_mc8%3, 6, 7 + extra_regs, 0 | |||||
%if ARCH_X86_64 | %if ARCH_X86_64 | ||||
movsxd r2, r2d | movsxd r2, r2d | ||||
%endif | %endif | ||||
@@ -282,14 +282,14 @@ cglobal %1_%2_chroma_mc8_%3, 6, 7 + extra_regs, 0 | |||||
RET | RET | ||||
%endmacro | %endmacro | ||||
%macro chroma_mc4_mmx_func 3 | |||||
%macro chroma_mc4_mmx_func 2 | |||||
%define extra_regs 0 | %define extra_regs 0 | ||||
%ifidn %2, rv40 | %ifidn %2, rv40 | ||||
%ifdef PIC | %ifdef PIC | ||||
%define extra_regs 1 | %define extra_regs 1 | ||||
%endif ; PIC | %endif ; PIC | ||||
%endif ; rv40 | %endif ; rv40 | ||||
cglobal %1_%2_chroma_mc4_%3, 6, 6 + extra_regs, 0 | |||||
cglobal %1_%2_chroma_mc4, 6, 6 + extra_regs, 0 | |||||
%if ARCH_X86_64 | %if ARCH_X86_64 | ||||
movsxd r2, r2d | movsxd r2, r2d | ||||
%endif | %endif | ||||
@@ -373,8 +373,8 @@ cglobal %1_%2_chroma_mc4_%3, 6, 6 + extra_regs, 0 | |||||
REP_RET | REP_RET | ||||
%endmacro | %endmacro | ||||
%macro chroma_mc2_mmx_func 3 | |||||
cglobal %1_%2_chroma_mc2_%3, 6, 7, 0 | |||||
%macro chroma_mc2_mmx_func 2 | |||||
cglobal %1_%2_chroma_mc2, 6, 7, 0 | |||||
%if ARCH_X86_64 | %if ARCH_X86_64 | ||||
movsxd r2, r2d | movsxd r2, r2d | ||||
%endif | %endif | ||||
@@ -434,35 +434,38 @@ cglobal %1_%2_chroma_mc2_%3, 6, 7, 0 | |||||
PAVG %1, %2 | PAVG %1, %2 | ||||
%endmacro | %endmacro | ||||
INIT_MMX | |||||
INIT_MMX mmx | |||||
%define CHROMAMC_AVG NOTHING | %define CHROMAMC_AVG NOTHING | ||||
%define CHROMAMC_AVG4 NOTHING | %define CHROMAMC_AVG4 NOTHING | ||||
chroma_mc8_mmx_func put, h264, rnd_mmx | |||||
chroma_mc8_mmx_func put, vc1, nornd_mmx | |||||
chroma_mc8_mmx_func put, rv40, mmx | |||||
chroma_mc4_mmx_func put, h264, mmx | |||||
chroma_mc4_mmx_func put, rv40, mmx | |||||
chroma_mc2_mmx_func put, h264, mmxext | |||||
chroma_mc8_mmx_func put, h264, _rnd | |||||
chroma_mc8_mmx_func put, vc1, _nornd | |||||
chroma_mc8_mmx_func put, rv40 | |||||
chroma_mc4_mmx_func put, h264 | |||||
chroma_mc4_mmx_func put, rv40 | |||||
INIT_MMX mmxext | |||||
chroma_mc2_mmx_func put, h264 | |||||
%define CHROMAMC_AVG DIRECT_AVG | %define CHROMAMC_AVG DIRECT_AVG | ||||
%define CHROMAMC_AVG4 COPY_AVG | %define CHROMAMC_AVG4 COPY_AVG | ||||
%define PAVG pavgb | %define PAVG pavgb | ||||
chroma_mc8_mmx_func avg, h264, rnd_mmxext | |||||
chroma_mc8_mmx_func avg, vc1, nornd_mmxext | |||||
chroma_mc8_mmx_func avg, rv40, mmxext | |||||
chroma_mc4_mmx_func avg, h264, mmxext | |||||
chroma_mc4_mmx_func avg, rv40, mmxext | |||||
chroma_mc2_mmx_func avg, h264, mmxext | |||||
chroma_mc8_mmx_func avg, h264, _rnd | |||||
chroma_mc8_mmx_func avg, vc1, _nornd | |||||
chroma_mc8_mmx_func avg, rv40 | |||||
chroma_mc4_mmx_func avg, h264 | |||||
chroma_mc4_mmx_func avg, rv40 | |||||
chroma_mc2_mmx_func avg, h264 | |||||
%define PAVG pavgusb | %define PAVG pavgusb | ||||
chroma_mc8_mmx_func avg, h264, rnd_3dnow | |||||
chroma_mc8_mmx_func avg, vc1, nornd_3dnow | |||||
chroma_mc8_mmx_func avg, rv40, 3dnow | |||||
chroma_mc4_mmx_func avg, h264, 3dnow | |||||
chroma_mc4_mmx_func avg, rv40, 3dnow | |||||
%macro chroma_mc8_ssse3_func 3 | |||||
cglobal %1_%2_chroma_mc8_%3, 6, 7, 8 | |||||
INIT_MMX 3dnow | |||||
chroma_mc8_mmx_func avg, h264, _rnd | |||||
chroma_mc8_mmx_func avg, vc1, _nornd | |||||
chroma_mc8_mmx_func avg, rv40 | |||||
chroma_mc4_mmx_func avg, h264 | |||||
chroma_mc4_mmx_func avg, rv40 | |||||
%macro chroma_mc8_ssse3_func 2-3 | |||||
cglobal %1_%2_chroma_mc8%3, 6, 7, 8 | |||||
%if ARCH_X86_64 | %if ARCH_X86_64 | ||||
movsxd r2, r2d | movsxd r2, r2d | ||||
%endif | %endif | ||||
@@ -609,8 +612,8 @@ cglobal %1_%2_chroma_mc8_%3, 6, 7, 8 | |||||
REP_RET | REP_RET | ||||
%endmacro | %endmacro | ||||
%macro chroma_mc4_ssse3_func 3 | |||||
cglobal %1_%2_chroma_mc4_%3, 6, 7, 0 | |||||
%macro chroma_mc4_ssse3_func 2 | |||||
cglobal %1_%2_chroma_mc4, 6, 7, 0 | |||||
%if ARCH_X86_64 | %if ARCH_X86_64 | ||||
movsxd r2, r2d | movsxd r2, r2d | ||||
%endif | %endif | ||||
@@ -663,16 +666,16 @@ cglobal %1_%2_chroma_mc4_%3, 6, 7, 0 | |||||
%endmacro | %endmacro | ||||
%define CHROMAMC_AVG NOTHING | %define CHROMAMC_AVG NOTHING | ||||
INIT_XMM | |||||
chroma_mc8_ssse3_func put, h264, rnd_ssse3 | |||||
chroma_mc8_ssse3_func put, vc1, nornd_ssse3 | |||||
INIT_MMX | |||||
chroma_mc4_ssse3_func put, h264, ssse3 | |||||
INIT_XMM ssse3 | |||||
chroma_mc8_ssse3_func put, h264, _rnd | |||||
chroma_mc8_ssse3_func put, vc1, _nornd | |||||
INIT_MMX ssse3 | |||||
chroma_mc4_ssse3_func put, h264 | |||||
%define CHROMAMC_AVG DIRECT_AVG | %define CHROMAMC_AVG DIRECT_AVG | ||||
%define PAVG pavgb | %define PAVG pavgb | ||||
INIT_XMM | |||||
chroma_mc8_ssse3_func avg, h264, rnd_ssse3 | |||||
chroma_mc8_ssse3_func avg, vc1, nornd_ssse3 | |||||
INIT_MMX | |||||
chroma_mc4_ssse3_func avg, h264, ssse3 | |||||
INIT_XMM ssse3 | |||||
chroma_mc8_ssse3_func avg, h264, _rnd | |||||
chroma_mc8_ssse3_func avg, vc1, _nornd | |||||
INIT_MMX ssse3 | |||||
chroma_mc4_ssse3_func avg, h264 |
@@ -417,13 +417,6 @@ const AVMetadataConv ff_riff_info_conv[] = { | |||||
{ 0 }, | { 0 }, | ||||
}; | }; | ||||
const char ff_riff_tags[][5] = { | |||||
"IARL", "IART", "ICMS", "ICMT", "ICOP", "ICRD", "ICRP", "IDIM", "IDPI", | |||||
"IENG", "IGNR", "IKEY", "ILGT", "ILNG", "IMED", "INAM", "IPLT", "IPRD", | |||||
"IPRT", "ISBJ", "ISFT", "ISHP", "ISMP", "ISRC", "ISRF", "ITCH", | |||||
{0} | |||||
}; | |||||
#if CONFIG_MUXERS | #if CONFIG_MUXERS | ||||
int64_t ff_start_tag(AVIOContext *pb, const char *tag) | int64_t ff_start_tag(AVIOContext *pb, const char *tag) | ||||
{ | { | ||||
@@ -640,12 +633,19 @@ void ff_riff_write_info_tag(AVIOContext *pb, const char *tag, const char *str) | |||||
} | } | ||||
} | } | ||||
static const char riff_tags[][5] = { | |||||
"IARL", "IART", "ICMS", "ICMT", "ICOP", "ICRD", "ICRP", "IDIM", "IDPI", | |||||
"IENG", "IGNR", "IKEY", "ILGT", "ILNG", "IMED", "INAM", "IPLT", "IPRD", | |||||
"IPRT", "ISBJ", "ISFT", "ISHP", "ISMP", "ISRC", "ISRF", "ITCH", | |||||
{0} | |||||
}; | |||||
static int riff_has_valid_tags(AVFormatContext *s) | static int riff_has_valid_tags(AVFormatContext *s) | ||||
{ | { | ||||
int i; | int i; | ||||
for (i = 0; *ff_riff_tags[i]; i++) { | |||||
if (av_dict_get(s->metadata, ff_riff_tags[i], NULL, AV_DICT_MATCH_CASE)) | |||||
for (i = 0; *riff_tags[i]; i++) { | |||||
if (av_dict_get(s->metadata, riff_tags[i], NULL, AV_DICT_MATCH_CASE)) | |||||
return 1; | return 1; | ||||
} | } | ||||
@@ -667,8 +667,8 @@ void ff_riff_write_info(AVFormatContext *s) | |||||
list_pos = ff_start_tag(pb, "LIST"); | list_pos = ff_start_tag(pb, "LIST"); | ||||
ffio_wfourcc(pb, "INFO"); | ffio_wfourcc(pb, "INFO"); | ||||
for (i = 0; *ff_riff_tags[i]; i++) { | |||||
if ((t = av_dict_get(s->metadata, ff_riff_tags[i], NULL, AV_DICT_MATCH_CASE))) | |||||
for (i = 0; *riff_tags[i]; i++) { | |||||
if ((t = av_dict_get(s->metadata, riff_tags[i], NULL, AV_DICT_MATCH_CASE))) | |||||
ff_riff_write_info_tag(s->pb, t->key, t->value); | ff_riff_write_info_tag(s->pb, t->key, t->value); | ||||
} | } | ||||
ff_end_tag(pb, list_pos); | ff_end_tag(pb, list_pos); | ||||