OSDN Git Service
Peter Ross [Thu, 22 Oct 2015 02:46:25 +0000 (13:46 +1100)]
libavformat/electronicarts: also demux mpeg audio layer 2
Signed-off-by: Peter Ross <pross@xvid.org>
http://wiki.multimedia.cx/index.php?title=Electronic_Arts_SCxl
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Carl Eugen Hoyos [Thu, 22 Oct 2015 09:37:42 +0000 (11:37 +0200)]
lavc/x86/vc1dsp_init: Fix compilation with --disable-yasm.
Carl Eugen Hoyos [Thu, 22 Oct 2015 09:19:45 +0000 (11:19 +0200)]
lavf/mpjpegdec: Return 0 if an allocation inside the probe function fails.
Paul B Mahol [Thu, 22 Oct 2015 08:35:09 +0000 (10:35 +0200)]
avformat/electronicarts: fix demuxing of certain eam files
Such files have gaps between header chunks.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Wed, 21 Oct 2015 20:59:08 +0000 (22:59 +0200)]
avformat/electronicarts: support ADPCM PSX
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Julian Scheel [Wed, 21 Oct 2015 15:10:48 +0000 (17:10 +0200)]
mmaldec: Add mpeg2 decoding support
Register mmaldec as mpeg2 decoder. Supporting mpeg2 in mmaldec is just a
matter of setting the correct MMAL_ENCODING on the input port. To ease the
addition of further supported mmal codecs a macro is introduced to generate
the decoder and decoder class structs.
Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: wm4 <nfxjfg@googlemail.com>
James Almer [Thu, 22 Oct 2015 06:55:18 +0000 (03:55 -0300)]
x86/Makefile: move decoder/encoder objects out of the subsystems section
Signed-off-by: James Almer <jamrial@gmail.com>
Marton Balint [Wed, 14 Oct 2015 22:48:24 +0000 (00:48 +0200)]
ffmpeg: exit on corrupt packets or decoded frames if exit_on_error flag is present
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
Marton Balint [Wed, 14 Oct 2015 22:36:38 +0000 (00:36 +0200)]
ffmpeg: factorize checking decoder result
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
Marton Balint [Wed, 14 Oct 2015 22:08:43 +0000 (00:08 +0200)]
ffmpeg: exit on av_write_trailer failure if exit_on_error is set
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
Marton Balint [Wed, 14 Oct 2015 22:06:12 +0000 (00:06 +0200)]
ffmpeg: log failed av_write_trailer
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
Timothy Gu [Sat, 17 Oct 2015 23:39:50 +0000 (16:39 -0700)]
vc1dsp: Port ff_vc1_put_ver_16b_shift2_mmx to yasm
This function is only used within other inline asm functions, hence the
HAVE_MMX_INLINE guard. Per recent discussions, we should not worry about
the performance of inline asm-only builds.
Alexis Ballier [Wed, 21 Oct 2015 16:00:57 +0000 (18:00 +0200)]
libavformat/mxfdec.c: Report dark metadata keys only when they match no parser at all, not everytime they fail to match one.
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Alexis Ballier [Wed, 21 Oct 2015 16:00:56 +0000 (18:00 +0200)]
libavformat/mxfdec.c: cosmetics: Add missing space after '?' in log message.
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Andreas Cadhalpun [Tue, 13 Oct 2015 23:42:10 +0000 (01:42 +0200)]
avcodec: rename avpriv_color_frame to ff_color_frame
It is only used inside libavcodec.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Andreas Cadhalpun [Fri, 16 Oct 2015 22:23:32 +0000 (00:23 +0200)]
avcodec: drop 2 suffix from avpriv_ac3_parse_header2
avpriv_ac3_parse_header was removed in commit
3dfb643.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Tobias Rapp [Tue, 20 Oct 2015 13:34:36 +0000 (15:34 +0200)]
avfilter/vf_ssim: Add support for writing stats to stdout
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Timothy Gu [Mon, 19 Oct 2015 01:25:11 +0000 (02:25 +0100)]
huffyuvencdsp: Cherry pick changes left out in the last commit
Oops.
Timothy Gu [Mon, 19 Oct 2015 01:25:11 +0000 (02:25 +0100)]
huffyuvencdsp: Add ff_diff_bytes_{sse2,avx2}
SSE2 version 4%-35% faster than MMX depending on the width.
AVX2 version 1%-13% faster than SSE2 depending on the width.
Julian Scheel [Wed, 21 Oct 2015 07:00:33 +0000 (09:00 +0200)]
mmaldec: Fix avpriv_atomic_get usage
There is no avpriv_atomic_get, instead avpriv_atomic_int_get is to be used for
integers. This fixes building mmaldec.
Signed-off-by: Julian Scheel <julian@jusst.de>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Hendrik Leppkes [Wed, 21 Oct 2015 10:50:44 +0000 (12:50 +0200)]
aacdec: fix strict prototype warning
Function protoypes without arguments require a void argument in C,
instead of an empty list.
Rostislav Pehlivanov [Wed, 21 Oct 2015 04:56:21 +0000 (05:56 +0100)]
lavf: add oggparsedaala and bump micro
This commit introduces a parser for the current bitstream produced by
Daala. It currently bears a large similarity with Theora, another
codec produced by Xiph. While likely to change in the future, its basic
format of packet parsing should remain fairly identical with its current
structure.
Once the bitstream freezes, there are a few probable simplifications
that could be made. Also, the current version (major, minor and micro)
is stuck at zero so it's unusable as a way to warn about possible
incompatibilities. This will change once the bitstream freezes,
however until then this file is strictly targeting the current git
master of the reference encoder, libdaala.
This file was developed independently at the same time by both myself
and Vittorio Giovara, who used libav as a starting point. For fairness,
and to prevent confusion and allegations, his name has been added to the
copyright in the license header as well, and vice versa.
Rostislav Pehlivanov [Wed, 21 Oct 2015 03:44:35 +0000 (04:44 +0100)]
lavc: add AV_CODEC_ID_DAALA to the list of codec IDs and bump minor
This commit shall introduce the first step of adding support for the
Daala next generation video codec to FFmpeg. Although still in
development, the codec is showing good progress and exchanging work
through IETF drafts. The companies behind Daala are also participating
in the Alliance for Open Media, so it's likely that whatever the result
any of these collaborations produce it's probable that elements from
Daala could be used in them, or perhaps this codec itself could be the
result.
James Zern [Tue, 20 Oct 2015 05:44:11 +0000 (22:44 -0700)]
libvpxenc: remove some unused ctrl id mappings
VP8E_UPD_ENTROPY, VP8E_UPD_REFERENCE, VP8E_USE_REFERENCE were removed
from libvpx and the remaining values were never used here
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Zern <jzern@google.com>
Timothy Gu [Mon, 19 Oct 2015 01:25:11 +0000 (02:25 +0100)]
huffyuvencdsp: Convert ff_diff_bytes_mmx to yasm
Heavily based upon ff_add_bytes by Christophe Gisquet.
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Tobias Rapp [Tue, 20 Oct 2015 13:02:21 +0000 (15:02 +0200)]
avfilter/vf_psnr: Add support for writing stats to stdout
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Andreas Cadhalpun [Tue, 13 Oct 2015 23:42:14 +0000 (01:42 +0200)]
avutil: merge avpriv_float_dsp_init into avpriv_float_dsp_alloc
Also replace the last two usages of avpriv_float_dsp_init with
avpriv_float_dsp_alloc.
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Andreas Cadhalpun [Tue, 13 Oct 2015 23:42:06 +0000 (01:42 +0200)]
avcodec: remove unused avpriv_ac3_parse_header
It was replaced by avpriv_ac3_parse_header2.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Andreas Cadhalpun [Tue, 13 Oct 2015 22:31:02 +0000 (00:31 +0200)]
avutil: install des.h, rc4.h and tree.h as public headers
These headers contain functions supposed to be public.
libavutil/des.h:
av_des_alloc
av_des_crypt
av_des_init
av_des_mac
libavutil/rc4.h:
av_rc4_alloc
av_rc4_crypt
av_rc4_init
libavutil/tree.h
av_tree_destroy
av_tree_enumerate
av_tree_find
av_tree_insert
av_tree_node_alloc
av_tree_node_size
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Timothy Gu [Tue, 29 Sep 2015 23:50:02 +0000 (16:50 -0700)]
dnxhdenc: Optimize get_pixels_8x4_sym for 10-bit
This reverts commit
628e6d0164febc8e69b0f10dfa487e8a2dd1a28a and uses
a better fix.
Before:
4483 decicycles in get_pixels_8x4_sym, 131032 runs, 40 skips
After:
2569 decicycles in get_pixels_8x4_sym, 131054 runs, 18 skips
Hendrik Leppkes [Wed, 30 Sep 2015 11:09:01 +0000 (13:09 +0200)]
dca_parser: don't overwrite the sample rate, it may not be correct
The parser only reads the dca core sample rate, which is limited to a
maximum of 48000 Hz, while X96 and HD extensions can increase the sample
rate up to 192000 Hz.
This change prevents the parser and decoder fighting over the sample rate,
potentially confusing user applications. This also fixes sample rate
display of >48000Hz files with ffmpeg/ffprobe when using libdcadec.
Fixes ticket #4397
wm4 [Tue, 20 Oct 2015 10:17:21 +0000 (12:17 +0200)]
avformat/mp3dec: improve junk skipping heuristic
Commit
2b3e9bbfb529e6bde238aeb511b55ebe461664c8 caused problems for a
certain API user:
https://code.google.com/p/chromium/issues/detail?id=537725
https://code.google.com/p/chromium/issues/detail?id=542032
The problem seems rather arbitrary, because if there's junk, anything
can happen. In this case, the imperfect junk skipping just caused it to
read different junk, from what I can see.
We can improve the accuracy of junk detection by a lot by checking if 2
consecutive frames use the same configuration. While in theory it might
be completely fine for the 1st frame to have a different format than the
2nd frame, it's exceedingly unlikely, and I can't think of a legitimate
use-case.
This is approximately the same mpg123 does for junk skipping. The
set of compared header bits is the same as the libavcodec mp3 parser
uses for similar purposes.
Paul B Mahol [Sun, 18 Oct 2015 22:03:10 +0000 (00:03 +0200)]
avformat: add wve demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sat, 17 Oct 2015 19:41:18 +0000 (21:41 +0200)]
avformat: add msf demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Michael Niedermayer [Sun, 18 Oct 2015 00:20:32 +0000 (02:20 +0200)]
compat/solaris/make_sunver.pl: Use /usr/bin/env perl instead of /usr/bin/perl
This is how the other perl scripts in git call perl
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Timothy Gu [Mon, 19 Oct 2015 01:12:28 +0000 (02:12 +0100)]
huffyuvencdsp: Use intptr_t for width
It is done this way in huffyuvdsp as well.
Timothy Gu [Sat, 17 Oct 2015 23:38:00 +0000 (16:38 -0700)]
x86: vc1dsp_mmx: Move yasm initiation steps to vc1dsp_init
That's where all yasm initiation steps are. Also removes the overlap
between the two files.
Timothy Gu [Sat, 17 Oct 2015 23:34:07 +0000 (16:34 -0700)]
x86: fpel: Remove erroneous ff_put_pixels8_mmxext prototype
This function does not exist.
Timothy Gu [Sat, 17 Oct 2015 23:32:08 +0000 (16:32 -0700)]
x86: fpel: Move prototypes for 4-px block functions
Michael Niedermayer [Mon, 19 Oct 2015 20:14:10 +0000 (22:14 +0200)]
avcodec/mpegaudio_parser: Update comment to match code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
James Zern [Fri, 16 Oct 2015 22:28:55 +0000 (15:28 -0700)]
vp9_parser: fix endless loop w/0-sized frame
treat this the same as an over-sized superframe packet to break out of
the parser loop and allow the decoder to fail.
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
Matt Oliver [Fri, 16 Oct 2015 06:00:13 +0000 (17:00 +1100)]
lavu/intmath.h: Move x86 only msvc/icl functions to x86 specific header.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
Matt Oliver [Fri, 16 Oct 2015 05:58:43 +0000 (16:58 +1100)]
lavu/intmath.h: Add msvc/icl ctzll optimisations.
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
Clément Bœsch [Sat, 17 Oct 2015 12:54:31 +0000 (14:54 +0200)]
avutil/opt: display a better default value for int/int64 options
Example:
% ./ffmpeg -h encoder=aac
-aac_coder <int> E...A... Coding algorithm (from -1 to 3) (default twoloop)
faac E...A... FAAC-inspired method
anmr E...A... ANMR method
twoloop E...A... Two loop searching method
fast E...A... Constant quantizer
[...]
Kyle Swanson [Thu, 15 Oct 2015 15:08:36 +0000 (10:08 -0500)]
avfilter/af_flanger: free frame on ENOMEM
Signed-off-by: Kyle Swanson <k@ylo.ph>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ganesh Ajjanagadde [Thu, 15 Oct 2015 23:36:22 +0000 (19:36 -0400)]
avutil: use EINVAL instead of -1 for the return code of crypto related init functions
These functions return an error typically when the key size is an
incorrect number. AVERROR(EINVAL) is more specific than -1.
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Michael Niedermayer [Sat, 17 Oct 2015 21:35:29 +0000 (23:35 +0200)]
avformat/vag: Remove unused variable pos
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Paul B Mahol [Mon, 21 Sep 2015 13:34:15 +0000 (15:34 +0200)]
avfilter: add zscale filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Ganesh Ajjanagadde [Sun, 18 Oct 2015 01:22:59 +0000 (21:22 -0400)]
avcodec/bitstream: replace qsort with AV_QSORT
Commit
3a0a2f33a6c955823fa4fb12c0b49cd29a496659 claims large performance
advantages for AV_QSORT over libc's qsort. The reason is that I suspect
that libc's qsort (at least on non LTO builds, like the typical FFmpeg config)
can't inline the comparison callback:
https://stackoverflow.com/questions/
5290695/is-there-any-way-a-c-c-compiler-can-inline-a-c-callback-function.
AV_QSORT has two things going for it:
1. The guaranteed inlining of qsort itself. This yields a negligible
boost that may be ignored.
2. The more serious possibility of potentially allowing the comparison
function to be inlined - this is likely responsible for the large boosts
reported.
There is a comment explaining that this is a place that could use some
performance improvement. Thus AV_QSORT is used to achieve that.
Benchmarks deemed unnecessary due to existing claims about AV_QSORT.
Tested with FATE.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Carl Eugen Hoyos [Sun, 18 Oct 2015 12:27:51 +0000 (14:27 +0200)]
configure: Simplify using --disable-all.
libavutil was always built, allow its dependencies to be enabled.
Paul B Mahol [Sun, 18 Oct 2015 12:10:26 +0000 (14:10 +0200)]
avcodec/adpcm: increase max channels for ADPCM PSX to 8
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sun, 18 Oct 2015 11:45:10 +0000 (13:45 +0200)]
avformat/rsd: add VAG support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Alexis Ballier [Fri, 16 Oct 2015 08:42:33 +0000 (10:42 +0200)]
libavcodec/mpegvideo_enc.c: Fix encoding videos with less frames than the delay of the encoder.
When the encoder is fed with less frames than its delay, the picture list looks like { NULL, NULL, ..., frame, frame, frame }. When flushing the encoder (input frame == NULL), we need to ensure the picture list is shifted enough so that we do not return an empty packet, which would mean the encoder has finished, while it has not encoded any frame.
Before the patch, the command:
'./ffmpeg_g -loglevel debug -f lavfi -i "testsrc=d=0.01" -bf 2 -vcodec mpeg2video out.mxf' prints:
Output stream #0:0 (video): 1 frames encoded; 0 packets muxed (0 bytes);
After:
Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (8058 bytes);
Relates to ticket #4817.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sun, 18 Oct 2015 09:44:42 +0000 (11:44 +0200)]
avcodec/mpegvideo_enc: Merge ifs with identical conditions
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sun, 18 Oct 2015 09:42:32 +0000 (11:42 +0200)]
avcodec/mpegvideo_enc: Factor new_picture unref out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Paul B Mahol [Sun, 18 Oct 2015 00:00:21 +0000 (02:00 +0200)]
avfilter/af_ladspa: check functions return value in query_formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Ganesh Ajjanagadde [Thu, 15 Oct 2015 02:56:54 +0000 (22:56 -0400)]
avfilter/internal: Doxygen for ff_fmt_is_in
This clarifies and adds Doxygen for ff_fmt_is_in.
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Rostislav Pehlivanov [Sat, 17 Oct 2015 21:50:55 +0000 (22:50 +0100)]
aacenc_ltp: adjust and speed up autocorrelation calculations
There were some errors in the calculation as well as an entire
unnecessary loop to find the gain coefficient. Merge the
two loops.
Thanks to @ubitux for the suggestions and testing.
Derek Buitenhuis [Fri, 16 Oct 2015 19:09:20 +0000 (15:09 -0400)]
mpegts: Make the sdt_period a double
Having it as a float didn't even allow enough precision to check
for INT_MAX/2.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Derek Buitenhuis [Fri, 16 Oct 2015 19:09:19 +0000 (15:09 -0400)]
mpegts: Make the pat_period a double
Having it as a float didn't even allow enough precision to check
for INT_MAX/2.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Paul B Mahol [Sat, 17 Oct 2015 18:00:35 +0000 (20:00 +0200)]
avformat/vag: fix demuxing stereo files
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Michael Niedermayer [Sat, 17 Oct 2015 11:40:04 +0000 (13:40 +0200)]
avcodec/aacenc: Fix "libavcodec/aacenc.c:540:13: warning: ISO C90 forbids mixed declarations and code"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sat, 17 Oct 2015 10:59:08 +0000 (12:59 +0200)]
tests/fate-run: Remove ./ from run ffmpeg call
This makes it consistent with ffprobe
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Marton Balint [Tue, 13 Oct 2015 20:56:00 +0000 (22:56 +0200)]
concatdec: fix file_start_time calculation regression
Fixes ticket #4924.
Found-by: Jaroslav Šnajdr <jsnajdr@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
Ganesh Ajjanagadde [Thu, 15 Oct 2015 03:00:02 +0000 (23:00 -0400)]
avfilter/internal: add av_warn_unused_result
av_warn_unused_result is added to functions whose return status should
be checked. Currently does not trigger any warnings, but should be
useful for future robustness.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Timothy Gu [Wed, 14 Oct 2015 04:31:47 +0000 (21:31 -0700)]
chromakey: Use the pixel descriptor API for chroma subsampling info
Hendrik Leppkes [Thu, 15 Oct 2015 22:09:06 +0000 (00:09 +0200)]
libavformat/Makefile: remove unnecessary object file from wtv demuxer
The wtv demuxer doesn't reference any functionality from asfdec or asfcrypt
Clément Bœsch [Sat, 17 Oct 2015 13:01:23 +0000 (15:01 +0200)]
avfilter/selectivecolor: fix correction_method option range
Rostislav Pehlivanov [Sat, 17 Oct 2015 12:28:55 +0000 (13:28 +0100)]
aacenc_ltp: correct header description comment
Rostislav Pehlivanov [Sat, 17 Oct 2015 11:30:53 +0000 (12:30 +0100)]
fate: use -profile:a aac_ltp instead of -aac_ltp 1 for LTP encode test
The fate test command line is supposed to serve as an example. It's
nicer to explicitly state the profile rather than setting options
to force it for you.
Rostislav Pehlivanov [Sat, 17 Oct 2015 11:24:16 +0000 (12:24 +0100)]
aacenc_ltp: replace av_clip() with av_clip_uintp2()
Suggested by ubitux.
Convenient.
Rostislav Pehlivanov [Sat, 17 Oct 2015 10:58:33 +0000 (11:58 +0100)]
aacenc_ltp: fix assertion
A value of 2048 will overflow 11 bits.
Michael Niedermayer [Sat, 17 Oct 2015 10:11:16 +0000 (12:11 +0200)]
avformat/rsd: Check av_new_packet() return value
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sat, 17 Oct 2015 00:44:43 +0000 (02:44 +0200)]
avformat/genh: Check av_new_packet() return value
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sat, 17 Oct 2015 10:25:48 +0000 (12:25 +0200)]
tests/fate-run: Remove PROGSUF from function calls
Fixes make fate V=2
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Rostislav Pehlivanov [Sat, 17 Oct 2015 10:23:22 +0000 (11:23 +0100)]
fate: increase fuzz on AAC LTP encoding test
Fails on some newer systems (archlinux with a modern GCC version).
Rostislav Pehlivanov [Sat, 17 Oct 2015 10:08:56 +0000 (11:08 +0100)]
fate: add a parameter to disable TNS for the other encoder tests
Since it became the default option, in order to prevent interference
with the other tests, disable it.
Rostislav Pehlivanov [Sat, 17 Oct 2015 10:06:05 +0000 (11:06 +0100)]
aacenc_tns: enable Temporal Noise Shaping by default
In light of the recent changes to the TNS system, it has been
deemed worthy and robust enough to be turned on by default.
Rostislav Pehlivanov [Sat, 17 Oct 2015 10:05:36 +0000 (11:05 +0100)]
fate: adjust the target for the new TNS changes
Rostislav Pehlivanov [Sat, 17 Oct 2015 09:59:35 +0000 (10:59 +0100)]
aacenc_tns: rework TNS descision logic
Changes:
- strongly prefer dual filters to a single filter
- less strict about using 2 filters w.r.t. energy
- scrap the usage of threshold and spread, useless
- use odd-shaped windows to set the filter direction
- use 4 bits instead of 3 bits for short windows
- simplify and reduce the main loop to a single level
- add stricter regulations for short windows
All of this now makes the TNS implementation operate
as good as it can and it definitely shows. The frequency
thresholds are now even better defined by looking at
the spectrals and the overall sound has been improved at
the price of just a few bits that are well worth it.
Rostislav Pehlivanov [Sat, 17 Oct 2015 09:58:06 +0000 (10:58 +0100)]
aacenc_tns: simplify encoding function
It's simpler and has 2 less levels than the previous which
was practically lifted from the decoder with put_bits() instead
of get_bits().
Rostislav Pehlivanov [Sat, 17 Oct 2015 09:55:19 +0000 (10:55 +0100)]
aacenc_tns: disable coefficient compression by default
Too much effort and work has been spent on such a simple function.
It simply refuses to work as the specifications say, the
transformation is NOT lossless and creates some crackling and
distortions.
Therefore disable it by default and add a couple of warnings to
scare people away from touching it or wasting their time the
way I did.
Rostislav Pehlivanov [Sat, 17 Oct 2015 09:50:41 +0000 (10:50 +0100)]
aacenc_tns: add moving average filter for LTP
The decoder does this so I guess we better do that as well.
There's barely any difference between the autoregressive and
the moving average filters looking at spectrals though.
Timothy Gu [Mon, 12 Oct 2015 09:50:18 +0000 (02:50 -0700)]
opencl: Force the use of 1.2 APIs
Silences warnings regarding `clCreateCommandQueue` being deprecated.
Only a very limited number of products support 2.0. Since the
replacement API (`clCreateCommandQueueWithProperties`) is only available
in 2.0, we should not update it just yet.
Timothy Gu [Mon, 12 Oct 2015 09:44:40 +0000 (02:44 -0700)]
opencl: Use "opencl" as log context name
All other classes use lowercase names.
Timothy Gu [Mon, 12 Oct 2015 09:41:15 +0000 (02:41 -0700)]
opencl: Print compilation log
Useful when debugging.
Timothy Gu [Mon, 12 Oct 2015 09:38:49 +0000 (02:38 -0700)]
opencl: Print error string when compilation fails
Rostislav Pehlivanov [Sat, 17 Oct 2015 05:55:19 +0000 (06:55 +0100)]
aacenc: increase fuzz on aac-ms-encode test
GCC 3.4 miscompiles it on sunos. Date of release? The second of
August two thousand and five, anno Domini. That's ten years two
months and fourteen days ago. Three thousand seven hundred and
twenty seven days ago. One sixth of the average life expectancy
of a person living in a country with a human development index
of zero point eight hundred and eight, equality adjusted.
GCC 4.3 also miscompiles it, though not as bad.
Rostislav Pehlivanov [Sat, 17 Oct 2015 04:59:19 +0000 (05:59 +0100)]
fate: adjust aac encoder test values and introduce MS and LTP tests
The LTP encoding and the test is a bit slow currently, taking twice
the amount of time the other tests do, so in the future the
total time to encode might be cut down on that test.
Rostislav Pehlivanov [Sat, 17 Oct 2015 02:15:44 +0000 (03:15 +0100)]
aacenc: partially revert previous commits to set options via a profile
It didn't work out because of the exceptions that needed to be made
for the "-1" cases and was overall more confusing that just manually
checking and setting options for each profile.
Ganesh Ajjanagadde [Thu, 15 Oct 2015 02:26:38 +0000 (22:26 -0400)]
avfilter/avfiltergraph: fix -Wunused-result warnings
Commit
bf0d2d6030c239f91e0368a20fb2dc0705bfec99 introduced
av_warn_unused_result to avfilter/formats, whose associated warnings
were mostly fixed in
6aaac24d72a7da631173209841a3944fcb4a3309. This
fixes the issues in avfilter/avfiltergraph.
Tested with FATE.
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Rostislav Pehlivanov [Sat, 17 Oct 2015 01:22:51 +0000 (02:22 +0100)]
aacenc: add support for encoding files using Long Term Prediction
Long Term Prediction allows for prediction of spectral coefficients
via the previously decoded time-dependent samples. This feature
works well with harmonic content 2 or more frames long, like speech,
human or non-human, piano music or any constant tones at very low
bitrates.
It should be noted that the current coder is highly efficient and
the rate control system is unable to encode files at extremely
low bitrates (less than 14kbps seems to be impossible) so this
extension isn't capable of optimum operation. Dramatic difference
is observable with some types of audio and speech but for the most
part the audiable differences are subtle. The spectrum looks better
however so the encoder is able to harvest the additional bits that
this feature provies, should the user choose to enable it. So
it's best to enable this feature only if encoding at the absolutely
lowest bitrate that the encoder is capable of.
Rostislav Pehlivanov [Sat, 17 Oct 2015 01:20:13 +0000 (02:20 +0100)]
aacenc: (re)enable Mid/Side coding by default
Apparently it was set to be enabled by default but after the
profile commits it was reverted to be off by default because
I didn't notice.
Works well so (re)enable it.
Rostislav Pehlivanov [Sat, 17 Oct 2015 01:15:44 +0000 (02:15 +0100)]
aacenc_pred: only print predictor information if profile is aac_main
Needed because LTP uses predictor_present as well.
Rostislav Pehlivanov [Sat, 17 Oct 2015 01:14:10 +0000 (02:14 +0100)]
aacenc: correctly zero prediction_used array
An oversight, probably because of copy-pasting the TNS line.
Rostislav Pehlivanov [Sat, 17 Oct 2015 01:13:00 +0000 (02:13 +0100)]
aacenc: slightly simplify and remove a redundant variable
Functionally identical, doesn't change anything.
Rostislav Pehlivanov [Sat, 17 Oct 2015 01:10:56 +0000 (02:10 +0100)]
aacenc_pred: correct header information
Rostislav Pehlivanov [Sat, 17 Oct 2015 01:08:34 +0000 (02:08 +0100)]
aacenc: indicate that TNS is off by default
Doesn't change anything, just a slight clarification that
under all profiles TNS is currently off. That'll be soon to change
hopefully.
Rostislav Pehlivanov [Sat, 17 Oct 2015 01:06:09 +0000 (02:06 +0100)]
aactab: move ltp_coef[] from aacdectab to aactab
The encoder makes use of it in the following commits.
Michael Niedermayer [Sat, 17 Oct 2015 00:13:42 +0000 (02:13 +0200)]
avcodec/ffv1: Initialize vlc_state on allocation
This ensures that they are always set to valid values
Fixes Ticket4939
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>