- 29 Aug, 2015 10 commits
-
-
Rostislav Pehlivanov authored
This commit introduces a test for AAC-Main prediction which was just reworked in this series of commits. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
-
Rostislav Pehlivanov authored
Hopefully without errors like last time, but I'm prepared. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
-
Rostislav Pehlivanov authored
Pulses are already on the way so expect to see the list gone in the close future. TNS is already of sufficiently high quality to be enabled by default (but isn't yet, so you too can help by testing!). Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
-
Rostislav Pehlivanov authored
This commit abandons the way the specifications state to quantize the coefficients, makes use of the new LPC float functions and is much better. The original way of converting non-normalized float samples to int32_t which out LPC system expects was wrong and it was wrong to assume the coefficients that are generated are also valid. It was essentially a full garbage-in, garbage-out system and it definitely shows when looking at spectrals and listening. The high frequencies were very overattenuated. The new LPC function performs the analysis directly. The specifications state to quantize the coefficients into four bit index values using an asin() function which of course had to have ugly ternary operators because the function turns negative if the coefficients are negative which when encoding causes invalid bitstream to get generated. This deviates from this by using the direct TNS tables, which are fairly small since you only have 4 bits at most for index values. The LPC values are directly quantized against the tables and are then used to perform filtering after the requantization, which simply fetches the array values. The end result is that TNS works much better now and doesn't attenuate anything but the actual signal, e.g. TNS removes quantization errors and does it's job correctly now. It might be enabled by default soon since it doesn't hurt and helps reduce nastyness at low bitrates. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
-
Rostislav Pehlivanov authored
This commit removes the array which was made redundant with the last commit. The current prediction system gets the quantization error directly (and without the single-frame delay) in the search_for_pred function. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
-
Rostislav Pehlivanov authored
This commit completely alters the algorithm of prediction. The original commit which introduced prediction was completely incorrect to even remotely care about what the actual coefficients contain or whether any options were enabled. Not my actual fault. This commit treats prediction the way the decoder does and expects to do: like lossy encryption. Everything related to prediction now happens at the very end but just before quantization and encoding of coefficients. On the decoder side, prediction happens before anything has had a chance to even access the coefficients. Also the original implementation had problems because it actually touched the band_type of special bands which already had their scalefactor indices marked and it's a wonder the asserion wasn't triggered when transmitting those. Overall, this now drastically increases audio quality and you should think about enabling it if you don't plan on playing anything encoded on really old low power ultra-embedded devices since they might not support decoding of prediction or AAC-Main. Though the specifications were written ages ago and as times change so do the FLOPS. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
-
Rostislav Pehlivanov authored
This was missed when the original commits were done. FF_PROFILE_UNKNOWN is what's in avctx->profile when no audio profile is specified. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
-
Rostislav Pehlivanov authored
This commit simply duplicates the functionality of ff_lpc_calc_coefs() for the case of a Levinson-Durbin LPC with the only difference being that floating point samples are accepted and the resulting coefficients are raw and unquantized. The motivation behind doing this is the fact that the AAC encoder requires LPC in TNS and LTP and converting non-normalized floating point coefficients to int32_t using SWR and again back for the LPC coefficients was very impractical. The current LPC interfaces were designed for int32_t in mind possibly because FLAC and ALAC use this type for most internal operations. The mathematics in case of floats remains of course identical. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
-
Rostislav Pehlivanov authored
This commit simply moves the TNS tables to a more appropriate aactab.h since then they can be accessed by both the decoder and encoder. The encoder _shouldn't_ normally need the tables since the specs describe a specific quantization process, but the exact reason for this can be seen in the TNS commit following. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
-
Philip Langdale authored
At least for vdpau, the hwaccel init code tries to check the video profile and ensure that there is a matching vdpau profile available. If it can't find a match, it will fail to initialise. In the case of wmv3/vc1, I observed initialisation to fail all the time. It turns out that this is due to the hwaccel being initialised very early in the codec init, before the profile has been extracted and set. Conceptually, it's a simple fix to reorder the init code, but it gets messy really fast because ff_get_format(), which is what implicitly trigger hwaccel init, is called multiple times through various shared init calls from h263, etc. It's incredibly hard to prove to my own satisfaction that it's safe to move the vc1 specific init code ahead of this generic code, but all the vc1 fate tests pass, and I've visually inspected a couple of samples and things seem correct. Signed-off-by: Philip Langdale <philipl@overt.org>
-
- 28 Aug, 2015 12 commits
-
-
Michael Niedermayer authored
This prevents breaking existing command lines in case the "ab" default is removed from libavcodec Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Paul B Mahol authored
This is shorter and consistent across filters. Signed-off-by: Paul B Mahol <onemda@gmail.com>
-
Ronald S. Bultje authored
-
Ronald S. Bultje authored
The amv one probably looks suspicious, but since it's an intra-only codec, I couldn't possibly imagine what it would use the edge for, and the vsynth fate result doesn't change, so it's probably OK.
-
Philip Langdale authored
Signed-off-by: Philip Langdale <philipl@overt.org>
-
Paul B Mahol authored
Signed-off-by: Paul B Mahol <onemda@gmail.com>
-
Harshit Mittal authored
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Carl Eugen Hoyos authored
-
Thilo Borgmann authored
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
-
Carl Eugen Hoyos authored
This can fail as seen on fate and the usefulness of the suggestion is limited.
-
Donny Yang authored
The current algorithm is just "try all the combinations, and pick the best". It's not very fast either, probably due to a lot of copying, but will do for an initial implementation. Signed-off-by: Donny Yang <work@kota.moe> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Michael Niedermayer authored
Fixes segfault Fixes Ticket4809 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
- 27 Aug, 2015 18 commits
-
-
rogerdpack authored
Better message that ffplay is not going to be built by printing out what will be built. Based on a patch by Moritz Barsnick. Signed-off-by: rogerdpack <rogerpack2005@gmail.com> Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu> Signed-off-by: Timothy Gu <timothygu99@gmail.com>
-
Michael Niedermayer authored
Fixes Ticket4802 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Zhang Rui authored
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Ganesh Ajjanagadde authored
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
-
Paul B Mahol authored
Signed-off-by: Paul B Mahol <onemda@gmail.com>
-
Stefano Sabatini authored
-
lummax authored
Assert on `avctx->codec->encode2` to avoid a SEGFAULT on the subsequent function call. avcodec_encode_video2() uses a similar assertion. Calling the wrong function on a stream is a serious inconsistency which could at other places be potentially dangerous and exploitable, it is thus safer to stop execution and not continue with such inconsistency after returning an error. Commit-message-extended-by commiter Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Timo Rothenpieler authored
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
-
Ganesh Ajjanagadde authored
The wiki, Ticket1464, and Ticket3970 warn about the usage of GCC 4.2. This fixes Ticket3970. Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
-
Carl Eugen Hoyos authored
-
Michael Niedermayer authored
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Ganesh Ajjanagadde authored
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Hendrik Leppkes authored
* commit 'e176639b': webm: Explicitly select libvpx, libopus and libvorbis encoders Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
-
Hendrik Leppkes authored
* commit '413d4e54': nvenc: Properly free the fifos Not merged, ffmpeg's nvenc doesn't use these fifos. Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
-
Hendrik Leppkes authored
* commit '2157df42': hlsenc: Support outputting specific versions Not merged, the version is auto-selected in ffmpeg based on enabled features. Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
-
Hendrik Leppkes authored
* commit 'd68705c9': dnxhddata: Add tables for missing DNx100 profiles Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
-
Hendrik Leppkes authored
* commit 'a4615572': dnxhddata: Merge a few duplicated RUN tables Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
-
Hendrik Leppkes authored
* commit 'efbfb1ad': dnxhddata: Group together RUN-related tables Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
-