ffmpeg.git
5 years agomovdec: handle 0x7fff langcode as macintosh per the specs
Baptiste Coudurier [Wed, 21 Mar 2012 21:18:16 +0000 (14:18 -0700)]
movdec: handle 0x7fff langcode as macintosh per the specs

The correct point that seperates ISO and MAC language codes is 0x400
according to the current QT spec. Old QT specs did not list where this
seperation is but apparently only defined the meaning of the first 137.

5 years agolibspeex: support ZygoAudio (quality 10 mode)
Piotr Bandurski [Wed, 16 Jan 2013 18:32:54 +0000 (19:32 +0100)]
libspeex: support ZygoAudio (quality 10 mode)

5 years agoisom: lpcm in mov default to big endian
Mark Himsley [Fri, 1 Nov 2013 11:22:53 +0000 (11:22 +0000)]
isom: lpcm in mov default to big endian

It is my understanding that "Unless otherwise stated, all data in a
QuickTime movie is stored in big-endian byte ordering" [1] in MOV files.

I have a couple of thousand files, which technically are invalid because
their sound sample description element 4CC is 'lpcm' but its version is
0 - and "Version 0 supports only uncompressed audio in raw ('raw ') or
twos-complement ('twos') format" [2]

Because isom.c only contains a mapping for 4CC 'lpcm' to
AV_CODEC_ID_PCM_S16LE, these files have their audio decoded as LE when
it is actually BE.

This commit adds AV_CODEC_ID_PCM_S16BE as the first match for 4CC 'lpcm'.

[1]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 21
[2]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 178

Reviewed-by: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
5 years agoisom: add "MNG" FourCC
Piotr Bandurski [Sat, 14 Jul 2012 16:42:29 +0000 (18:42 +0200)]
isom: add "MNG" FourCC

5 years agoisom: Support MPEG-2 video mov files from FPC5
Carl Eugen Hoyos [Sat, 22 Feb 2014 23:31:50 +0000 (00:31 +0100)]
isom: Support MPEG-2 video mov files from FPC5

5 years agoisom: add "NO16" FourCC
Piotr Bandurski [Sun, 15 Jul 2012 11:25:47 +0000 (13:25 +0200)]
isom: add "NO16" FourCC

5 years agoisom: add Radius DV YUV FourCCs
Piotr Bandurski [Tue, 5 Jun 2012 10:13:39 +0000 (12:13 +0200)]
isom: add Radius DV YUV FourCCs

5 years agoisom: Support Sony XAVC in mov
Carl Eugen Hoyos [Fri, 18 Oct 2013 05:50:50 +0000 (07:50 +0200)]
isom: Support Sony XAVC in mov

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agoisom: add xd51 hdcam
Ben Littler [Wed, 19 Jun 2013 14:43:48 +0000 (10:43 -0400)]
isom: add xd51 hdcam

Someone needs to binary search FCP for new isom...

5 years agohevc: make pps/sps ids unsigned where necessary
Vittorio Giovara [Sun, 9 Mar 2014 16:15:26 +0000 (17:15 +0100)]
hevc: make pps/sps ids unsigned where necessary

Fixes integer overflow and out of array accesses.
Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind
5 years agohevc: Do not turn 32bit timebases into negative numbers
Michael Niedermayer [Sat, 15 Feb 2014 22:09:55 +0000 (23:09 +0100)]
hevc: Do not turn 32bit timebases into negative numbers

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
5 years agohevc: use av_mallocz() for allocating tab_ipm
Michael Niedermayer [Sat, 11 Jan 2014 19:23:51 +0000 (20:23 +0100)]
hevc: use av_mallocz() for allocating tab_ipm

Fixes use of uninitialized memory and out of stack array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
5 years agohevc: Use get_bits_long() in decode_vui()
Michael Niedermayer [Sat, 15 Feb 2014 21:29:17 +0000 (22:29 +0100)]
hevc: Use get_bits_long() in decode_vui()

Fix assertion failure.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
5 years agofloat_dsp: fix errors in documentation
Janne Grunau [Sun, 2 Mar 2014 19:33:49 +0000 (20:33 +0100)]
float_dsp: fix errors in documentation

5 years agotimer: use mach_absolute_time as high resolution clock on darwin
Janne Grunau [Fri, 24 Jan 2014 00:15:31 +0000 (01:15 +0100)]
timer: use mach_absolute_time as high resolution clock on darwin

Not guaranteed to be in nanosecond resolution. On iOS 7 the duration
of one tick is 125/3 ns which is still more than an order of magnitude
better then microseconds.

Replace decicycles with the neutral UNITS. Decicycles is strange but
tenths of a nanosecond and unspecific "deci"-ticks for mach_absolute_time
is just silly.

5 years agoarm: get_cabac inline asm
Janne Grunau [Wed, 29 Jan 2014 13:48:22 +0000 (14:48 +0100)]
arm: get_cabac inline asm

Based on the aarch64 asm. CPU cycle counts on cortex-a9 compared to
gcc 4.8.2:
before: 475 decicycles in get_cabac_noinline, 67106035 runs, 2829 skips
after:  393 decicycles in get_cabac_noinline, 67106474 runs, 2390 skips

Overall speedup is above 2%. Code generated by clang 3.4 is slower on
the same hardware and the relative change is a little larger.

5 years agoaarch64: get_cabac inline asm
Janne Grunau [Mon, 13 Jan 2014 00:06:20 +0000 (01:06 +0100)]
aarch64: get_cabac inline asm

Based on the x86 branchless get_cabac asm. get_cabac_noinline() gets
approximately 20% faster (no cycle counts available) compared to clang
from Xcode 5.1 beta5. More than 6% faster overall. A part of the overall
speedup might be explained by additional inlining of get_cabac().

5 years agoarm: vp3: remove incorrect const in ff_vp3_idct_dc_add_neon declaration
Janne Grunau [Sat, 8 Mar 2014 18:15:16 +0000 (19:15 +0100)]
arm: vp3: remove incorrect const in ff_vp3_idct_dc_add_neon declaration

Was missed in aeaf268e52fc11c1f64914a319e0edddf1346d6a when integrating
clear_blocks into the idct.

5 years agobuild: Use pkg-config for openjpeg
Pierre Lejeune [Sat, 8 Mar 2014 12:19:17 +0000 (12:19 +0000)]
build: Use pkg-config for openjpeg

Bug-Id: 387
CC: libav-stable@libav.org
5 years agomovenc: allow override of "writing application" tag
John Stebbins [Mon, 3 Mar 2014 20:20:15 +0000 (20:20 +0000)]
movenc: allow override of "writing application" tag

Signed-off-by: Tim Walker <tdskywalker@gmail.com>
CC: libav-stable@libav.org
5 years agomatroskaenc: allow override of "writing application" tag
John Stebbins [Mon, 3 Mar 2014 20:20:14 +0000 (20:20 +0000)]
matroskaenc: allow override of "writing application" tag

Signed-off-by: Tim Walker <tdskywalker@gmail.com>
CC: libav-stable@libav.org
5 years agoarm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6
Janne Grunau [Sat, 8 Mar 2014 10:52:14 +0000 (11:52 +0100)]
arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6

The overread avoidance fix in cbddee1cca0ebd01e8c5aa694d31228eb4de4b41
broke the computation for the last row since it prevented the safe
reading from the height+1-th row.

CC: libav-stable@libav.org
5 years agorv10: K&R formatting cosmetics
Keiji Costantini [Sat, 1 Mar 2014 18:44:01 +0000 (19:44 +0100)]
rv10: K&R formatting cosmetics

Also sort #includes into canonical order.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
5 years agorv10: Forward error from rv10_decode_packet
Keiji Costantini [Sat, 1 Mar 2014 18:44:00 +0000 (19:44 +0100)]
rv10: Forward error from rv10_decode_packet

Signed-off-by: Diego Biurrun <diego@biurrun.de>
5 years agog2meet: K&R formatting cosmetics
Diego Biurrun [Fri, 7 Mar 2014 14:15:02 +0000 (15:15 +0100)]
g2meet: K&R formatting cosmetics

5 years agofic: Properly handle skip frames
Derek Buitenhuis [Fri, 7 Mar 2014 14:31:53 +0000 (14:31 +0000)]
fic: Properly handle skip frames

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
5 years agomatroskadec: cosmetics: Fix "attachement" vs. "attachment" typo
Diego Biurrun [Fri, 7 Mar 2014 12:54:18 +0000 (13:54 +0100)]
matroskadec: cosmetics: Fix "attachement" vs. "attachment" typo

5 years agomatroskadec: K&R formatting cosmetics
Keiji Costantini [Sat, 1 Mar 2014 16:28:15 +0000 (17:28 +0100)]
matroskadec: K&R formatting cosmetics

Also sort #includes into canonical order.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
5 years agortmppkt: Rename the ts_delta field to ts_field
Martin Storsjö [Wed, 5 Mar 2014 14:07:37 +0000 (16:07 +0200)]
rtmppkt: Rename the ts_delta field to ts_field

Based on a suggestion by Martin Panter. This is more descriptive,
since it's the actual timestamp field from the RTMP packet,
which might or might not be a delta depending on context (in
some packets it's a delta, in some packets it's an absolute
timestamp, and in some packets it's 0xffffff to indicate that
the actual delta or absolute timestamp is transmitted separately).

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agortmppkt: Properly handle extended timestamps when writing
Martin Panter [Wed, 5 Mar 2014 14:02:18 +0000 (16:02 +0200)]
rtmppkt: Properly handle extended timestamps when writing

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agortmppkt: Add a descriptive comment
Martin Panter [Wed, 5 Mar 2014 14:00:44 +0000 (16:00 +0200)]
rtmppkt: Add a descriptive comment

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agortmppkt: Handle extended timestamp field even for one-byte header
Martin Panter [Wed, 5 Mar 2014 04:04:39 +0000 (04:04 +0000)]
rtmppkt: Handle extended timestamp field even for one-byte header

Related fix in "rtmpdump":
https://repo.or.cz/w/rtmpdump.git/commitdiff/79459a2

Adobe's RTMP specification (21 Dec 2012), section 5.3.1.3 ("Extended
Timestamp"), says "this field is present in Type 3 chunks". Type 3 chunks are
those with the one-byte header size.

This resolves intermittent hangs and segfaults caused by the read function,
and also includes an untested fix for the write function.

The read function was tested with ABC (Australia) News 24 streams, however
they are probably restricted to only Australian internet addresses. Some of
the packets at the start of these streams seem to contain junk timestamp
fields, often requiring the extended field. Test command:

avplay rtmp://cp81899.live.edgefcs.net/live/news24-med@28772

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agodict: K&R formatting cosmetics
Patrice Clement [Thu, 6 Mar 2014 18:40:56 +0000 (19:40 +0100)]
dict: K&R formatting cosmetics

5 years agolibx265: Support API version 9
Derek Buitenhuis [Thu, 6 Mar 2014 20:01:17 +0000 (20:01 +0000)]
libx265: Support API version 9

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
5 years agodxva2: Increase maximum number of slices for mpeg2
Rainer Hochecker [Thu, 6 Mar 2014 13:40:43 +0000 (14:40 +0100)]
dxva2: Increase maximum number of slices for mpeg2

Some content requires an higher number of slices in order to
render properly.

Rise the number to 1024 and warn if ever it exceeds.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agomxf: Return meaningful errors
Luca Barbato [Wed, 8 Jan 2014 00:51:48 +0000 (01:51 +0100)]
mxf: Return meaningful errors

5 years agomxf: Parse random index pack
Paul B Mahol [Fri, 18 Oct 2013 10:44:56 +0000 (10:44 +0000)]
mxf: Parse random index pack

Get the last partition offset and use it when footer partition
offset is missing.

Footer partition may not be present and even if present footer
partition offset may not be set in any partition except last one.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agomxf: Handle identification metadata
Matthieu Bouron [Fri, 29 Mar 2013 13:09:31 +0000 (14:09 +0100)]
mxf: Handle identification metadata

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agomxf: Set audio packets pts
Matthieu Bouron [Thu, 13 Sep 2012 19:15:48 +0000 (21:15 +0200)]
mxf: Set audio packets pts

Extrapolate audio timestamps based on the number of samples demuxed.

Deal with some MXF nastiness involving fractional number of
samples per EditUnit when seeking (the specs handwave this away).

Further fixes from Tomas Härdin.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agomxf: Introduce ff_mxf_get_samples_per_frame
Matthieu Bouron [Thu, 20 Sep 2012 18:31:28 +0000 (20:31 +0200)]
mxf: Introduce ff_mxf_get_samples_per_frame

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agobuild: Let the SVQ3 decoder depend on the H.264 decoder
Diego Biurrun [Thu, 6 Mar 2014 12:04:03 +0000 (13:04 +0100)]
build: Let the SVQ3 decoder depend on the H.264 decoder

The SVQ3 decoder reuses large parts of the H.264 decoder so it
makes no sense to enable the former but not the latter.

Also drop unnecessary h263.o object from SVQ3 decoder object list.

5 years agoconfigure: Split x86 SIMD architecture extensions into separate list
Diego Biurrun [Sat, 2 Nov 2013 16:21:53 +0000 (17:21 +0100)]
configure: Split x86 SIMD architecture extensions into separate list

This avoids checking inline/external assembly dependencies for x86
extensions that do not play a role in inline/external assembly.

5 years agovf_shuffleplanes: fix the type of the mapping indices
Anton Khirnov [Thu, 6 Mar 2014 07:32:50 +0000 (08:32 +0100)]
vf_shuffleplanes: fix the type of the mapping indices

They are TYPE_INT AVOptions, so they must be ints

5 years agox86: dcadsp: Fix linking with yasm and optimizations disabled
Diego Biurrun [Tue, 4 Mar 2014 18:40:21 +0000 (19:40 +0100)]
x86: dcadsp: Fix linking with yasm and optimizations disabled

Some optimized functions reference optimized symbols, so the functions
must be explicitly disabled when those symbols are unavailable.

5 years agoFATE: add tests for the shuffleplanes filter
Anton Khirnov [Mon, 24 Feb 2014 10:32:16 +0000 (11:32 +0100)]
FATE: add tests for the shuffleplanes filter

5 years agolavfi: add shuffleplanes filter
Anton Khirnov [Sun, 23 Feb 2014 14:38:13 +0000 (15:38 +0100)]
lavfi: add shuffleplanes filter

5 years agolavfi: use the correct filter context for logging an error.
Anton Khirnov [Sun, 23 Feb 2014 14:40:06 +0000 (15:40 +0100)]
lavfi: use the correct filter context for logging an error.

5 years agoarm: hpeldsp: prevent overreads in armv6 asm
Janne Grunau [Wed, 5 Mar 2014 11:44:57 +0000 (12:44 +0100)]
arm: hpeldsp: prevent overreads in armv6 asm

Based on a patch by Russel King <rmk+libav@arm.linux.org.uk>

Bug-Id: 646
CC: libav-stable@libav.org
5 years agox86: cabac: Use correct #includes to make header compile standalone
Diego Biurrun [Tue, 4 Mar 2014 18:26:28 +0000 (19:26 +0100)]
x86: cabac: Use correct #includes to make header compile standalone

5 years agoavfilter: Add missing emms_c when needed
Luca Barbato [Wed, 5 Mar 2014 09:41:33 +0000 (10:41 +0100)]
avfilter: Add missing emms_c when needed

Arch specific calls should have an emms_c following to keep the cpu
state consistent.

Reported-By: wm4
CC: libav-stable@libav.org
5 years agoconfigure: enable PIC on s390(x)
Reinhard Tartler [Sun, 2 Mar 2014 07:11:05 +0000 (02:11 -0500)]
configure: enable PIC on s390(x)

The s390 architecture requires shared libraries to be built in PIC mode.
Otherwise applications will get wrong relocations at run-time, leading
to confusing segmentation faults.

CC: libav-stable@libav.org
5 years agoav_vdpau_get_profile: mask out H.264 intra profile flag
Rémi Denis-Courmont [Tue, 4 Mar 2014 19:13:09 +0000 (19:13 +0000)]
av_vdpau_get_profile: mask out H.264 intra profile flag

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
5 years agoavienc: K&R formatting cosmetics
Keiji Costantini [Fri, 28 Feb 2014 18:58:20 +0000 (19:58 +0100)]
avienc: K&R formatting cosmetics

Signed-off-by: Diego Biurrun <diego@biurrun.de>
5 years agovf_frei0r: fix missing end of line character
Vittorio Giovara [Tue, 4 Mar 2014 17:27:09 +0000 (18:27 +0100)]
vf_frei0r: fix missing end of line character

Error introduced in 61b323ce7c7cdc101eadfd7de2203922b8a39e8d.

5 years agodoc: fix a couple of typos in frame.h
Vittorio Giovara [Tue, 4 Mar 2014 14:16:51 +0000 (15:16 +0100)]
doc: fix a couple of typos in frame.h

5 years agoput_bits: Remove unused includes
Vittorio Giovara [Wed, 26 Feb 2014 01:26:29 +0000 (02:26 +0100)]
put_bits: Remove unused includes

This requires adding includes to other files that relied on these being
included implicitly.

5 years agomathops: move macro to the only place it is used
Vittorio Giovara [Sat, 1 Mar 2014 12:01:43 +0000 (13:01 +0100)]
mathops: move macro to the only place it is used

This helps in disentangling lavf and lavc too.

5 years agovf_frei0r: refactor library loading from env variable
Vittorio Giovara [Thu, 27 Feb 2014 11:29:37 +0000 (12:29 +0100)]
vf_frei0r: refactor library loading from env variable

strtok_r is not needed any more, so remove it from configure.

5 years agovf_frei0r: prevent a segfault when filter parameters are not set
Vittorio Giovara [Thu, 27 Feb 2014 11:06:15 +0000 (12:06 +0100)]
vf_frei0r: prevent a segfault when filter parameters are not set

5 years agovf_frei0r: adjust error messages
Vittorio Giovara [Thu, 27 Feb 2014 12:41:57 +0000 (13:41 +0100)]
vf_frei0r: adjust error messages

5 years agoass: K&R formatting cosmetics
Patrice Clement [Fri, 28 Feb 2014 17:31:29 +0000 (18:31 +0100)]
ass: K&R formatting cosmetics

5 years agoituh263: reject b-frame with pp_time = 0
Keiji Costantini [Sat, 1 Mar 2014 18:17:04 +0000 (18:17 +0000)]
ituh263: reject b-frame with pp_time = 0

Avoid a division by 0 in ff_mpeg4_set_one_direct_mv.

Sample-Id: 00000168-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agoqt-faststart: Add a note about the -movflags +faststart feature
Lou Logan [Tue, 7 Jan 2014 19:59:04 +0000 (10:59 -0900)]
qt-faststart: Add a note about the -movflags +faststart feature

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoqt-faststart: Avoid unintentionally sign extending BE_32
Martin Storsjö [Fri, 28 Feb 2014 10:19:49 +0000 (12:19 +0200)]
qt-faststart: Avoid unintentionally sign extending BE_32

Without this cast, the BE_32() expression is sign extended when
assigned to an uint64_t, since the uint8_t|uint8_t expression
is promoted to an int.

Also avoid undefined behaviour when left shifting an uint8_t
by 24 by casting it to an uint32_t explicitly before shifting.

Based on a patch by Michael Niedermayer.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoqt-faststart: Check offset_count before reading from the moov_atom buffer
Michael Niedermayer [Thu, 13 Dec 2012 14:07:20 +0000 (15:07 +0100)]
qt-faststart: Check offset_count before reading from the moov_atom buffer

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoqt-faststart: Check the ftello() return codes
Michael Niedermayer [Wed, 24 Oct 2012 22:39:33 +0000 (00:39 +0200)]
qt-faststart: Check the ftello() return codes

This silences a warning in the coverity static analyzer.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoqt-faststart: Fix the signedness of variables keeping the ftello return values
Michael Niedermayer [Mon, 29 Oct 2012 21:05:33 +0000 (22:05 +0100)]
qt-faststart: Fix the signedness of variables keeping the ftello return values

These variables are assigned the return values of ftello, which
returns an off_t, which is a signed type. On errors, ftello returns
-1, thus make sure this error return value can be stored properly.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoqt-faststart: Check fseeko() return codes
Michael Niedermayer [Mon, 22 Oct 2012 20:42:51 +0000 (22:42 +0200)]
qt-faststart: Check fseeko() return codes

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoqt-faststart: Simplify code by using a MIN() macro
Michael Niedermayer [Sun, 30 Sep 2012 19:53:26 +0000 (21:53 +0200)]
qt-faststart: Simplify code by using a MIN() macro

qt-faststart doesn't use the normal libav headers at all since
it's supposed to be a completely standalone tool, so we implement
the macro locally in this file.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoqt-faststart: Increase the copy buffer size to 64 KB
Martin Storsjö [Fri, 28 Feb 2014 09:41:55 +0000 (11:41 +0200)]
qt-faststart: Increase the copy buffer size to 64 KB

Copying data in chunks of 1 KB is a little wasteful.

64 KB should still easily fit on the stack, so there's no need
to allocate it dynamically.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agopthread_frame: flush all threads on flush, not just the first one
Anton Khirnov [Thu, 27 Feb 2014 20:36:33 +0000 (21:36 +0100)]
pthread_frame: flush all threads on flush, not just the first one

avcodec_flush_buffers() must release all internally held references
according to its documentation, for which all the threads need to be
flushed.

CC:libav-stable@libav.org
Bug-Id: vlc/9665

5 years agoaf_compand: replace strtok_r() with av_get_token()
Anton Khirnov [Wed, 26 Feb 2014 21:37:06 +0000 (22:37 +0100)]
af_compand: replace strtok_r() with av_get_token()

5 years agoconfigure: Set the thread type after resolving dependencies
Diego Biurrun [Mon, 23 Dec 2013 03:24:53 +0000 (04:24 +0100)]
configure: Set the thread type after resolving dependencies

A threading type might be detected originally, but later disabled
if one of its dependencies is unavailable.

This makes sure that the threading support item in the configure
output is right for setups where w32threads are available but
native atomics aren't.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agobuild: Let the ffvhuff decoder/encoder depend on the huffyuv decoder/encoder
Diego Biurrun [Thu, 27 Feb 2014 23:02:25 +0000 (15:02 -0800)]
build: Let the ffvhuff decoder/encoder depend on the huffyuv decoder/encoder

Almost all of the code is shared so there is little point in
enabling one decoder/encoder without the other.

5 years agobuild: Let the iac decoder depend on the imc decoder
Diego Biurrun [Thu, 27 Feb 2014 23:02:24 +0000 (15:02 -0800)]
build: Let the iac decoder depend on the imc decoder

Almost all of the code is shared so there is little point in
enabling one decoder without the other.

5 years agobuild: Let all MJPEG-related decoders depend on the MJPEG decoder
Diego Biurrun [Thu, 27 Feb 2014 23:02:23 +0000 (15:02 -0800)]
build: Let all MJPEG-related decoders depend on the MJPEG decoder

These codecs compile all of the MJPEG code anyway, so there is little
point in not enabling the MJPEG decoder directly. This also simplifies
the dependency declarations for the MJPEG codec family.

5 years agobuild: Let AMV decoder depend on the SP5X decoder
Diego Biurrun [Thu, 27 Feb 2014 23:02:22 +0000 (15:02 -0800)]
build: Let AMV decoder depend on the SP5X decoder

This codec compiles all of the SP5X code anyway, so there is little
point in not enabling the decoder directly. This also simplifies the
dependency declaration for the AMV decoder.

5 years agoh264: fix clang warning about uninitialized variable
Vittorio Giovara [Fri, 28 Feb 2014 12:16:37 +0000 (13:16 +0100)]
h264: fix clang warning about uninitialized variable

5 years agoh264: update flag name in ff_h264_decode_ref_pic_list_reordering()
Vittorio Giovara [Wed, 19 Feb 2014 02:23:17 +0000 (03:23 +0100)]
h264: update flag name in ff_h264_decode_ref_pic_list_reordering()

This is the name used in the specifications.

5 years agoh264: parse two additional constraint flags
Vittorio Giovara [Wed, 19 Feb 2014 02:19:23 +0000 (03:19 +0100)]
h264: parse two additional constraint flags

5 years agoh264: add MVCD to the list of High profiles in SPS
Vittorio Giovara [Mon, 17 Feb 2014 12:55:15 +0000 (13:55 +0100)]
h264: add MVCD to the list of High profiles in SPS

Also comment all previous profiles.

5 years agolatm: Always reconfigure if no extradata was set previously
Hendrik Leppkes [Thu, 22 Dec 2011 23:14:32 +0000 (00:14 +0100)]
latm: Always reconfigure if no extradata was set previously

AAC LOAS can have new audio config objects in the stream itself.

Make sure the decoder reconfigures itself when the first one arrives
midstream.

Bug-Id: 644
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agoarm: dcadsp: implement decode_hf as external NEON asm
Janne Grunau [Sat, 22 Feb 2014 17:27:10 +0000 (18:27 +0100)]
arm: dcadsp: implement decode_hf as external NEON asm

5 years agodcadec: simplify decoding of VQ high frequencies
Christophe Gisquet [Fri, 14 Feb 2014 15:03:13 +0000 (15:03 +0000)]
dcadec: simplify decoding of VQ high frequencies

The vector dequantization has a test in a loop preventing effective SIMD
implementation. By moving it out of the loop, this loop can be DSPized.

Therefore, modify the current DSP implementation. In particular, the
DSP implementation no longer has to handle null loop sizes.

The decode_hf implementations have following timings:

For x86 Arrandale:
        C  SSE SSE2 SSE4
win32: 260 162  119  104
win64: 242 N/A   89   72

The arm NEON optimizations follow in a later patch as external asm. The
now unused check for the y modifier in arm inline asm is removed from
configure.

5 years agodca: factorize scaling in inverse ADPCM
Janne Grunau [Fri, 21 Feb 2014 12:13:36 +0000 (13:13 +0100)]
dca: factorize scaling in inverse ADPCM

Based on a patch from Christophe Gisquet.

Unrolling of the m == 0 case avoids a possible use of the uninitilized
value sum when s->predictor_history is not set. I failed to find a
sample for it. It also reduced the cycle count from 220 to 150 on
sandy bridge, x86_64 linux, gcc 4.8.2 compared to his patch.

5 years agox86: synth filter float: implement SSE2 version
Christophe Gisquet [Fri, 14 Feb 2014 15:03:09 +0000 (15:03 +0000)]
x86: synth filter float: implement SSE2 version

Timings for Arrandale:
          C    SSE
win32:  2108   334
win64:  1152   322

Factorizing the inner loop with a call/jmp is a >15 cycles cost, even with
the jmp destination being aligned.

Unrolling for ARCH_X86_64 is a 20 cycles gain.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
5 years agodcadsp: scan coefficients linearly in dca_lfe_fir
Christophe Gisquet [Fri, 14 Feb 2014 15:03:08 +0000 (15:03 +0000)]
dcadsp: scan coefficients linearly in dca_lfe_fir

This change is inspired by x86 asm where it frees a register.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
5 years agox86: dcadsp: implement SSE lfe_dir
Christophe Gisquet [Fri, 14 Feb 2014 15:03:07 +0000 (15:03 +0000)]
x86: dcadsp: implement SSE lfe_dir

Results for Arrandale/Windows:
32: 1670 -> 316
64:  728 -> 298

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
5 years agodcadec: remove scaling in lfe_interpolation_fir
Christophe Gisquet [Fri, 14 Feb 2014 15:03:06 +0000 (15:03 +0000)]
dcadec: remove scaling in lfe_interpolation_fir

The scaling factor is constant so it is faster to scale the
FIR coefficients in the tables during compilation.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
5 years agoproresenc: Reuse proper dsputil infrastructure for FDCT
Diego Biurrun [Thu, 27 Feb 2014 22:49:55 +0000 (14:49 -0800)]
proresenc: Reuse proper dsputil infrastructure for FDCT

5 years agoprores: Drop DSP infrastructure for prores encoder bits
Diego Biurrun [Thu, 27 Feb 2014 22:49:54 +0000 (14:49 -0800)]
prores: Drop DSP infrastructure for prores encoder bits

None of the encoder bits are arch-optimized.

5 years agoproresenc: Drop unnecessary DCT permutation bits
Diego Biurrun [Thu, 27 Feb 2014 22:49:53 +0000 (14:49 -0800)]
proresenc: Drop unnecessary DCT permutation bits

No permutation is necessary for the FDCT.

5 years agoprores: Use consistent names for DSP arch initialization functions
Diego Biurrun [Thu, 27 Feb 2014 22:49:52 +0000 (14:49 -0800)]
prores: Use consistent names for DSP arch initialization functions

5 years agoGive IDCT matrix transpose macro a more descriptive name
Diego Biurrun [Tue, 18 Feb 2014 17:57:45 +0000 (09:57 -0800)]
Give IDCT matrix transpose macro a more descriptive name

This also avoids a macro name clash and related warning on ARM.

5 years agoaf_compand: add a dependency on strtok_r
Anton Khirnov [Wed, 26 Feb 2014 12:44:53 +0000 (13:44 +0100)]
af_compand: add a dependency on strtok_r

5 years agobuild: Do not redundantly specifiy H.263-related object files for MSMPEG4v*
Diego Biurrun [Wed, 19 Feb 2014 19:33:29 +0000 (20:33 +0100)]
build: Do not redundantly specifiy H.263-related object files for MSMPEG4v*

These are already covered through dependencies specified in configure.

5 years agolavfi: add compand audio filter
Andrew Kelley [Wed, 26 Feb 2014 06:47:40 +0000 (01:47 -0500)]
lavfi: add compand audio filter

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agoparser: cosmetics: Drop some unnecessary parentheses
Diego Biurrun [Tue, 25 Feb 2014 11:21:15 +0000 (12:21 +0100)]
parser: cosmetics: Drop some unnecessary parentheses

5 years agolibavfilter: example audio filtering program
Anton Khirnov [Thu, 13 Feb 2014 07:50:16 +0000 (08:50 +0100)]
libavfilter: example audio filtering program

Based on a patch by Andrew Kelley <superjoe30@gmail.com>

Signed-off-by: Diego Biurrun <diego@biurrun.de>
5 years agoparser: K&R formatting cosmetics
Luca Barbato [Sun, 23 Feb 2014 22:59:25 +0000 (23:59 +0100)]
parser: K&R formatting cosmetics

Signed-off-by: Diego Biurrun <diego@biurrun.de>