Commit Graph

33468 Commits

Author SHA1 Message Date
Ronald S. Bultje
9ee2ddd773 vp9_parse: fix parsing of pskip and profile 2/3.
The fate results change because we now correctly timestamp the pskip
frames, which means the results are now identical to -vsync 0.
2015-09-04 09:59:17 -04:00
Ronald S. Bultje
10142f994a libvpxdec: explicitly signal RGB. 2015-09-04 09:33:46 -04:00
Ronald S. Bultje
4ecb8b4191 vp9: don't erase values for {lf,ref,skip,q}_enabled if segmentation=0.
Instead, use segmentation.enabled before accessing each of these values.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
8b45e87f64 vp9: fix segmentation map retention across keyframe boundaries. 2015-09-04 09:33:45 -04:00
Ronald S. Bultje
7cc7d13fe3 vp9: fix RGB chroma subsampling. 2015-09-04 09:33:45 -04:00
Ronald S. Bultje
ecd9f57edc vp9: read reserved bit in RGB header. 2015-09-04 09:33:45 -04:00
Ronald S. Bultje
48f641a18b vp9: clip intermediates in dequant calculations.
This makes values consistent with libvpx.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
eaff36c973 vp9: fix segmentation map retention if segmentation is turned off. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
8d25a11dc7 vp9: use resetctx in the same way as libvpx. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
cc9d3a3e36 vp9: fix indentation. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
caf6512ac4 vp9: deal with the case where update_map=0 but we're key/intraonly. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
339550e7c8 vp9: reset segmentation information on context reset. 2015-09-04 09:33:43 -04:00
Michael Niedermayer
fb04666995 avcodec/g2meet: Also clear tile dimensions on header_fail
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:14:14 +02:00
Michael Niedermayer
71ec8e1ed6 avcodec/g2meet: Fix potential overflow in tile dimensions check
Fixes CID1322351

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:14:13 +02:00
Michael Niedermayer
c447ab0e74 avcodec/eatgq: Check init_get_bits8() for failure
Fixes CID1322315

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:03:44 +02:00
Michael Niedermayer
66a7bc0010 avcodec/adpcm: Check init_get_bits8() for failure
Fixes CID1322317

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:03:37 +02:00
Michael Niedermayer
325ee610ba avcodec/libfdk-aacdec: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 11:26:14 +02:00
Michael Niedermayer
bd6610c3b3 avcodec/hevc_parser: Check init_get_bits8() for failure
Fixes: CID1322322

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 03:09:03 +02:00
Michael Niedermayer
194dd15558 avcodec/ira288: Check init_get_bits8() for failure
Fixes: CID1322321

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 02:19:06 +02:00
Michael Niedermayer
21d8c6612f avcodec/smacker: Check init_get_bits8() for failure
Fixes: CID1322314

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 02:15:50 +02:00
Michael Niedermayer
6ae1a32d8a avcodec/sonic: Check init_get_bits8() for failure
Fixes: CID1322310

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 02:14:10 +02:00
Michael Niedermayer
a51d4246d8 avcodec/svq1dec: Check init_get_bits8() for failure
Fixes: CID1322313

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 01:28:26 +02:00
Michael Niedermayer
f1593e4ca5 avcodec/tta: Check init_get_bits8() for failure
Fixes: CID1322319

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 01:28:25 +02:00
Michael Niedermayer
cbd3cd8eb2 avcodec/vp3: Check init_get_bits8() for failure
Fixes CID1322316

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 01:13:05 +02:00
Michael Niedermayer
e5aa6f7021 avcodec/gsmdec_template: avoid undefined negative left shifts
Fixes: unknown_unknown_338_824_cov_1045285351_sample-gsm-8000.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 22:17:24 +02:00
Claudio Freire
5131ba5657 AAC: MIPS: Add missing codebooks in quantize funcs
Add entries on the quantize function tables for the missing
codebooks (which all behave like ZERO)
2015-09-03 11:27:52 -03:00
Paul B Mahol
9136e65c40 avcodec/fraps: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:47:44 +00:00
Paul B Mahol
81f7a2579b avcodec/vorbisdec: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:12:14 +00:00
Michael Niedermayer
863522431f avcodec/mpeg12dec: Fix integer overflow
Fixes: signal_sigabrt_7ffff6ac8cc9_686_cov_1897408623_microsoft_new_way_to_shove_mpeg2_in_asf.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 21:11:07 +02:00
Michael Niedermayer
d9b56895b5 avcodec/mpegvideo: change bit_rate to 64bit
32bit is not sufficient for all cases

Fixes: signal_sigabrt_7ffff6ac8cc9_686_cov_1897408623_microsoft_new_way_to_shove_mpeg2_in_asf.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 21:10:36 +02:00
Michael Niedermayer
5b6a50e150 avcodec/mpegvideo_parser: Fix integer overflow
Fixes: signal_sigabrt_7ffff6ac8cc9_686_cov_1897408623_microsoft_new_way_to_shove_mpeg2_in_asf.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 20:55:09 +02:00
Michael Niedermayer
cf818be4f2 avcodec/truemotion1: Fix undefined behavior (left shift of negative value)
Fixes: asan_heap-oob_26f6853_862_cov_585961513_sonic3dblast_intro-partial.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 20:45:07 +02:00
周晓勇
95010d49a2 avcodec: loongson optimize mpeg2 dct unquantize intra and denoise dct
Change-Id: I2f391ae912a079fb32f0703841dca86358aac72a
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 16:53:32 +02:00
Michael Niedermayer
933309a6ca avcodec/mips/aaccoder_mips: disable optimizatios which break fate-aac-pns-encode
These should be re enabled once the issue is fixed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 13:04:57 +02:00
Rostislav Pehlivanov
20dc527139 aacenc: reorder coding tools
This commit reorders the coding tools such that they're doing what
the decoder does in reverse order. The very first thing the decoder
does is to decode M/S stereo if that's signalled, then prediction,
IS, and finally TNS and PNS in another function.
adjust_frame_information()'s application of IS and M/S was taken
out into two separate functions since prediction doesn't expect
to get the raw coefficients but rathe the coefficients at that
part of the encoding process.

The results show a much better PSNR when any combination of
Intensity Stereo, Mid/Side stereo and Prediction is used, which
is a sign of an increased encoder efficiency as well as the fact
that the decoder gets what it expects.

Otherwise, with only IS, PNS or prediction there are neither
regressions nor improvements except in the case of IS, which
now by itself (or with PNS) is less prone to artifacts. Enabling
M/S (using stereo_mode) as well will also reduce stereo artifacts
induced by IS, so in the very near future M/S may be enabled
by default.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-02 06:26:45 +01:00
Rainer Hochecker
62bd8deef9 avcodec/hevc_parser: fix split function of parser
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 02:48:43 +02:00
Michael Niedermayer
b7baebb754 avcodec/ffv1dec: Print CRCs at picture debug level
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 02:11:43 +02:00
Michael Niedermayer
eac161451d avcodec/ffv1dec: Check that there is enough space for the CRC in the global header
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 02:10:31 +02:00
Michael Niedermayer
1376084dcb avcodec/h264_slice: replace assert by normal error check
Fixes assertion failure
Fixes: c6075771557e4f3b7b74e63d2d24fb01/signal_sigabrt_7ffff6ac8cc9_133_cov_2853689970_CREDITS.FST

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 01:22:45 +02:00
Michael Niedermayer
642d2f9d55 avcodec/version: Minor version bump due to 5d12d7de2c
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 23:02:15 +02:00
Petri Hintukainen
5d12d7de2c mpegts: demux BluRay text subtitles
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 14:35:32 +02:00
Rostislav Pehlivanov
8ffe1cb4d7 aacenc: disable bandtype modifying extensions when coder != twoloop
If the selected coder isn't twoloop, this commit temporarily
disables IS and PNS.
The problem is in the encode_window_bands_info() being confused
and setting invalid band_types for non-marked (normal) bands.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 12:07:00 +01:00
Rostislav Pehlivanov
bc9927b854 aacenc: Enable Intensity Stereo by default
Since the changes made a few week ago (which were done more than a
month ago) the quality and stability of intensity stereo has been
notably good. There were some requests and wishes to have in on by
default and therefore it has been enabled. Should any regressions
arise changes will be made to preferably keep it operating rather
than just disabling it by default again.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:15:23 +01:00
Rostislav Pehlivanov
b7eb7cb3a1 aacenc: Enable Perceptual Noise Substitution by default
It has been in the current encoder in its current implementation
for quite some time now, so enable it by default. Will increase
quality at all bitrates, especially at low ones.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:13:33 +01:00
Rostislav Pehlivanov
a0079aae00 aacenc: reorder resetting of cpe->common_window
Purely a cosmetic change, most of the zeroing of encoder resources
should happen at the top of the main loop.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:00:10 +01:00
Rostislav Pehlivanov
f3f6c6b928 aacenc_tns: rework coefficient quantization and filter application
This commit reworks the TNS implementation to a hybrid between what
the specifications say, what the decoder does and what's the best
thing to do.

The filter application function was copied from the decoder and
modified such that it applies the inverse AR filter to the
coefficients. The LPC coefficients themselves are fed into the
same quantization expression that the specifications say should
be used however further processing is not done, instead they're
converted to the form that the decoder expects them to be in
and are sent off to the compute_lpc_coeffs function exactly the
way the decoder does. This function does all conversions and will
return the exact coefficients that the decoder will generate, which
are then applied to the coefficients.
Having the exact same coefficients on both the encoder and decoder
is a must since otherwise the entire sfb's over which the filter
is applied will be attenuated.

Despite this major rework, TNS might not work fine on some audio
types at very low bitrates (e.g. sub 90kbps) as it can attenuate
some coefficients too much. Users are advised to experiment with
TNS at higher bitrates if they wish to use this tool or simply
wait for the implementation to be improved.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:44:07 +01:00
Rostislav Pehlivanov
d09f9c45c7 aacenc: allocate a larger buffer for the TNS LPC context
Turns out autocorrelating more than 750 coefficients at once
will cause a segfault, despite there being enough space to
hold an entire frame of samples into the buffer.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:40:12 +01:00
Rostislav Pehlivanov
0fc3a51353 lpc: add ff_lpc_calc_ref_coefs_f() function
This commit adds a function to get the reflection coefficients on
floating point samples. It's functionally identical to
ff_lpc_calc_ref_coefs() except it works on float samples and will
return the global prediction gain. The Welch window implementation
which is more optimized works only on int32_t samples so a slower
generic expression was used.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:34:50 +01:00
Rostislav Pehlivanov
a70ee2bdcd lpc: remove unused ff_lpc_calc_levinson() function
Not needed anymore, it was only used by the AAC TNS
encoder and was replaced with a more suitable function
in the following commit.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:32:35 +01:00
Rostislav Pehlivanov
139c2f93fd aacenctab: add tns_min_sfb[] to the encoder tables header
Needed for following commits. Contains the starting sfb for
every samplerate and window type.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:30:08 +01:00
Rostislav Pehlivanov
5ed5ca706f aacenc: populate tns_max_bands
Needed for the following commits.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:20:24 +01:00
Michael Niedermayer
63fb5a6aef avcodec/truemotion1: Check for even width
Fixes out of array access
Fixes: 87196d8bbc633629fc9dd851fce73e70/asan_heap-oob_26f6853_862_cov_585961513_sonic3dblast_intro-partial.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 05:15:04 +02:00
Michael Niedermayer
b54e03c9dc avcodec/mpeg12dec: Set dimensions in mpeg1_decode_sequence() only in absence of errors
Fixes assertion failure
Fixes: 56dcafde14a8397161bb61a16c511179/signal_sigabrt_7ffff6ac8cc9_686_cov_1897408623_microsoft_new_way_to_shove_mpeg2_in_asf.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 02:47:11 +02:00
Michael Niedermayer
a047ccbb9f avcodec/movtextdec: Free ftab_temp
Fixes memleak
Fixes: efe937780e95574250dabe07151bdc23/unknown_unknown_351_849_cov_3187578556_shellymanne.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 23:44:39 +02:00
Michael Niedermayer
a1a32fdb0e avcodec/movtextdec: Make tx3g_ptr unsigned
Fixes integer overflow
Fixes: efe937780e95574250dabe07151bdc23/unknown_unknown_351_849_cov_3187578556_shellymanne.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 23:44:39 +02:00
Donny Yang
51d4bca5a4 avcodec/pngdec: fully support the tRNS chunk
Signed-off-by: Donny Yang <work@kota.moe>
2015-08-31 09:52:46 +00:00
Sven Dueking
67e87f8050 avcodec/qsv : Added look ahead rate control mode
Reviewed-by: Ivan Uskov <ivan.uskov@nablet.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 16:00:05 +02:00
Michael Niedermayer
845fb3d4a5 avcodec/options: Make dummy_v?_encoder static
It does not need to be non static

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 12:02:07 +02:00
Michael Niedermayer
4bd99f715d avcodec/snowenc: Support setting the iterative dia size separately
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 04:23:30 +02:00
Rostislav Pehlivanov
21bfeec27f aacenc_tns: do not limit the filter size
This was copied from the decoder, but is unneeded for the encoder.
tns_max_bands is unused and set to zero which zeroed out start, end
and size and thus no filter was actually applied.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 21:59:38 +01:00
Rostislav Pehlivanov
141d80ded7 lpc: rename ff_lpc_calc_levinsion to ff_lpc_calc_levinson
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:29:18 +01:00
Rostislav Pehlivanov
e924967fd5 aacenc_tns: fix out-of-bounds array access
Since the coefficients are stepped up to order + 1 it was possible
that it went over TNS_MAX_ORDER. Also just return in case the only
coefficient is less than the threshold.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:21:35 +01:00
Rostislav Pehlivanov
902ac9ca74 aacenc_tns: actually apply TNS filter to the coefficients
The encoder-side filter isn't that important. The PSNR
shouldn't change so the FATE test should still be fine.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:18:18 +01:00
Rostislav Pehlivanov
49854c56c2 aacenc: initialize LPC context with MAX_LPC_ORDER
The order should never go above TNS_MAX_ORDER (and thus cause
the context to be reinitialized) but this is just in case.

Also fix a comparison, since the coefficients are zero-indexed.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:15:52 +01:00
Rostislav Pehlivanov
0818705bf3 aacenc_tns: fix triggering an assertion with assert-level=2
It also made no sense to actually make the filter span the entire
window including the first band of the next window.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:01:59 +01:00
Rostislav Pehlivanov
f04d86c16a aacenc: remove TNS from the todo list
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>
2015-08-29 06:57:08 +01:00
Rostislav Pehlivanov
f20b67173c aacenc_tns: rework the way coefficients are calculated
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>
2015-08-29 06:47:31 +01:00
Rostislav Pehlivanov
1cd5daee20 aac: remove now-unused redundant array
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>
2015-08-29 06:44:20 +01:00
Rostislav Pehlivanov
44ddee945a aacenc_pred: rework the way prediction is done
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>
2015-08-29 06:34:08 +01:00
Rostislav Pehlivanov
949a4892fa aacenc: change FF_PROFILE_UNKNOWN to AAC-Main if prediction is enabled
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>
2015-08-29 06:28:21 +01:00
Rostislav Pehlivanov
20962b567b lpc: create a simplified Levinson-Durbin LPC handling float samples
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>
2015-08-29 06:14:13 +01:00
Rostislav Pehlivanov
f55cc57911 aac: move the TNS tables from aacdectab to the shared aactab
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>
2015-08-29 06:07:12 +01:00
Philip Langdale
91f1115a0e avcodec/vc1dec: Re-order init to avoid initting hwaccel too early
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>
2015-08-28 19:11:55 -07:00
Ronald S. Bultje
2fb593dcb9 Put remaining pieces of CODEC_FLAG_EMU_EDGE under FF_API_EMU_EDGE.
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.
2015-08-28 14:40:59 -04:00
Vittorio Giovara
e88103a7f9 Bump major versions of all libraries
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-08-28 16:04:28 +02:00
Vittorio Giovara
4e649debcf Postpone API-incompatible changes until the next bump 2015-08-28 16:04:28 +02:00
Vittorio Giovara
8f12ef9860 lavu: Drop deprecated duplicated AVFrame/AVCodecContext parameters
Deprecated in 10/2012.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
cad40a3833 lavc: Drop deprecated deinterlace module
Deprecated in 03/2013.
2015-08-28 16:04:19 +02:00
Vittorio Giovara
069713aa4b lavc: Drop deprecated thread opaque and codec pkt
These fields were never part of the public API.
2015-08-28 16:01:17 +02:00
Vittorio Giovara
9f90b24877 lavc: Drop deprecated get_buffer related functions
Deprecated in 11/2012.
2015-08-28 16:01:16 +02:00
Vittorio Giovara
01bcc2d5c2 lavc: Drop deprecated destruct_packet related functions
Deprecated in 10/2012.
2015-08-28 16:01:16 +02:00
Vittorio Giovara
dc70c19476 lavc: Drop deprecated request_channels related functions
Deprecated in 04/2011.
2015-08-28 16:01:16 +02:00
Donny Yang
51ca703222 apng: Support inter-frame compression
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>
2015-08-28 04:25:15 +02:00
Michael Niedermayer
3322f0d415 avcodec/dnxhddata: Fix inconsistent table entry
Fixes segfault
Fixes Ticket4809

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 04:07:42 +02:00
lummax
0c800b2761 avcodec: Assert on codec->encode2 in encode_audio2
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>
2015-08-27 17:26:24 +02:00
Timo Rothenpieler
1dd854e10f vaapi: Add hevc hwaccel support
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-08-27 17:05:44 +02:00
Carl Eugen Hoyos
0382c546cc lavc: Describe eia_608 as text subtitles. 2015-08-27 16:42:39 +02:00
Michael Niedermayer
6701c92fa4 avcodec/libopusenc: Fix infinite loop on flushing after 0 input
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-27 12:44:31 +02:00
Hendrik Leppkes
427598a2f4 Merge commit 'd68705c9756e6558c8e28d90b4c364f25ba72083'
* commit 'd68705c9756e6558c8e28d90b4c364f25ba72083':
  dnxhddata: Add tables for missing DNx100 profiles

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:40:06 +02:00
Hendrik Leppkes
f30132f9c4 Merge commit 'a4615572b576d3ef7ee2f11529d935e61bf4ebb8'
* commit 'a4615572b576d3ef7ee2f11529d935e61bf4ebb8':
  dnxhddata: Merge a few duplicated RUN tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:31:52 +02:00
Hendrik Leppkes
f19a283867 Merge commit 'efbfb1ad1112cea79bef51fd9f30c0c94735abfc'
* commit 'efbfb1ad1112cea79bef51fd9f30c0c94735abfc':
  dnxhddata: Group together RUN-related tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:29:54 +02:00
Hendrik Leppkes
305f461754 Merge commit '403ea4ac7289ac39229452b6b5e2f8ebcc00f2a1'
* commit '403ea4ac7289ac39229452b6b5e2f8ebcc00f2a1':
  dnxhddata: Merge a few duplicated DC tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:27:02 +02:00
Hendrik Leppkes
3b0af76c1b Merge commit '5e129ed655bff5b6d90355c0b713d7aaba3898ec'
* commit '5e129ed655bff5b6d90355c0b713d7aaba3898ec':
  dnxhddata: Group together DC-related tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:26:14 +02:00
Hendrik Leppkes
3f491224fe Merge commit 'd3ae4c65942d67a294fd56eabbbdcce6756fab5f'
* commit 'd3ae4c65942d67a294fd56eabbbdcce6756fab5f':
  dnxhddata: List the reused tables in a comment

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:19:41 +02:00
Hendrik Leppkes
bd074bde02 Merge commit 'fdd021884d5c06fb9ad65cb0040bb5717a7b084b'
* commit 'fdd021884d5c06fb9ad65cb0040bb5717a7b084b':
  dnxhddata: Keep a single CID in the table names

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:17:37 +02:00
Carl Eugen Hoyos
7f9656f10d lavc/dnxhdenc: Fix ibias default.
Fixes a regression since a8ab64d2 reported by Rens Dijkshoorn, rens offlinemedia nl.
2015-08-27 02:59:43 +02:00
James Almer
4c39892b67 avcodec/vdpau: fix compilation of mpeg1/mpeg4/vc1 decoders when h264 is disabled
Tested-by: wm4 <nfxjfg@googlemail.com>
Tested-by: Philip Langdale <philipl@overt.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-25 23:58:54 -03:00
Luca Barbato
413d4e54a9 nvenc: Properly free the fifos
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-25 19:47:43 +02:00
Michael Niedermayer
fa9af304f0 avcodec/mjpegdec: Remove message asking for a non mod 16 AMV sample
Ticket4770 contains such a sample and it decodes fine

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-24 19:50:01 +02:00
Vittorio Giovara
d68705c975 dnxhddata: Add tables for missing DNx100 profiles
1440x1080@8 progressive (1259) and interlaced (1260).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-08-24 13:20:10 +02:00