1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-19 05:49:09 +02:00

75303 Commits

Author SHA1 Message Date
Rostislav Pehlivanov
033e58941e aaccoder: rewrite PNS implementation
This commit rewrites the PNS implementation and significantly
improves sonic quality.

The previous implementation marked an incredibly big amount
of SFBs to predict when there was no need for this and this
resulted in quite a large amount of artifacts. Also the
quantization was incorrect (av_clip(4+log2f(...))) which
led to 3x the intensity for PNS values leading to even more
artifacts.

This commit rewrites the PNS search function and introduces
a major change: the PNS values are synthesized and are compared
to the current coefficients in addition to passing through
the revised checks to see whether PNS can be used.

This decreases distortions and makes the current PNS implementation
mainly focused on replacing any low-power non-zero bands as well
as adding any zeroed bands back.

The current encoder's performance is enough (especially with
IS) so PNS isn't really required except to fill in the occasional
few bands as well as extend any zeroed high frequency, so this
combination which is already enabled by default works
to get as much quality as it can within the bits allowed.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
8848c8440e aacenc_pred: disable PNS SFBs and disable right predictors with IS
Since PNS generates coefficients it doesn't make sense to send
the predicted ones as well. Also the specifications explicitly
state to disable right channel IS predictors.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
a71f7de95b aacenc_is: ignore PNS band types
It's better to trust that the coefficients generated will be
closer than the coefficients derived, and the new PNS implementation
makes sure that this happens.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
b9b1fd1183 aaccoder: use roundf() instead of ceilf()
The specifications explicitly state to use roundf() which
also rounds half-integer values away from zero.
This does fix a few IS artifacts.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
92aa3e7fb2 aacenc: copy PRNG from the decoder
Needed for the following PNS commits.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:25 +01:00
Hendrik Leppkes
34e85cb340 avcodec/vorbis: remove avpriv vorbis parser cruft
It was replaced by a public API
2015-09-06 16:25:58 +02:00
Hendrik Leppkes
2cad7eebc1 avcodec/flac: remove avpriv parsing API cruft 2015-09-06 16:25:56 +02:00
Hendrik Leppkes
eb011f73ca avcodec/alac: remove dead code cruft
The output is always planar since two major bumps, remove all code
related to packed output.
2015-09-06 16:25:55 +02:00
Michael Niedermayer
c5406d5e15 Changelog: add 2.8
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 15:59:40 +02:00
Rodger Combs
d2d020bb32 avcodec/htmlsubtitles: handle leading whitespace before tag names
This fixes cases like `</ font>`.

Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 15:48:34 +02:00
Clément Bœsch
a388ca359d avfilter/sine: support expression in the number of output samples 2015-09-06 15:28:21 +02:00
Clément Bœsch
db18b3d6e6 avcodec/samidec: small indent fix 2015-09-06 14:06:44 +02:00
Clément Bœsch
26786f43d7 avcodec/htmlsubtitles: drop avcodec dependency 2015-09-06 13:39:04 +02:00
Yayoi
87f90be4f2 avcodec/samidec: use ff_htmlmarkup_to_ass()
Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:29:28 +02:00
Yayoi
1bb8a53f08 avformat/samidec: do not include trailing sami footer in the last packet
Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:09:02 +02:00
Yayoi
fc9aa1fb46 fate/subtitles: add a new test for SAMI demuxer and decoder
Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:08:53 +02:00
Yayoi
50332f8a6b avcodec/srtdec: factor out HTML parsing code
This code will be used in SAMI decoder in a later commit.

Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:07:44 +02:00
Clément Bœsch
d9464e9c14 doc/examples/demuxing_decoding: simplify api_mode to refcount
This finalizes the quick cleanup of a753e6c9f508fd48a0f34438bcdce87c826779b9.
2015-09-06 12:35:00 +02:00
Ganesh Ajjanagadde
d74123d03e avfilter/af_asyncts: use llabs for int64_t
long may not be 64 bit on all platforms; so labs on int64_t is unsafe.
This fixes a warning reported in:
http://fate.ffmpeg.org/log.cgi?time=20150905071512&log=compile&slot=i386-darwin-clang-polly-3.7

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 11:59:34 +02:00
Zhang Rui
929451c5cb avformat/async: replace strerror with av_err2str
Fixes CID1322337

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 10:51:46 +02:00
Henrik Gramner
3cdda78deb checkasm: add unit tests for v210enc
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-06 10:36:24 +02:00
Michael Niedermayer
61009a709c tests/fate: replace all -f md5 by framemd5
also limit dcinema-encode to 20 frames to avoid huge reference checksum lists

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 03:23:02 +02:00
Michael Niedermayer
3cb85ad445 tests/fate-run: Pass bitexact flags to enc_dec_pcm() output
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-06 00:25:49 +02:00
Rostislav Pehlivanov
cf6fb6f3f7 fate: increase the fuzz of the AAC encoder aref test
Almost fine on SunOS without yasm but 5 wasn't enough.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-05 21:47:26 +01:00
Michael Niedermayer
69c344eed2 configure: Remove reference to no longer existing avcodec_encode_video()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 22:36:19 +02:00
Ganesh Ajjanagadde
78995dc241 avfilter/vf_unsharp: use the name 's' for the pointer to the private context
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-05 20:36:35 +00:00
Michael Niedermayer
8d860f9a77 avcodec/x86/w64xmmtest: Fix another build failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 22:15:53 +02:00
Hendrik Leppkes
8042d6c492 avcodec: remove old_codec_ids.h from SKIPHEADERS as well 2015-09-05 21:55:59 +02:00
Hendrik Leppkes
393b472362 avcodec: fix make install after old_codec_ids.h removal 2015-09-05 21:54:53 +02:00
Ronald S. Bultje
086c9b78d4 vp9: fix rounding error in idct_8x8_ssse3. 2015-09-05 15:50:02 -04:00
Ronald S. Bultje
ae9344cb9f vp9: check return value of ff_thread_ref_frame().
Fixes CID 1322309.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
ef8740d8e5 vp9: fix type of iadst4_1d intermediates.
Fixes integer overflows for extreme coefficient values in 10/12bpp content.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
342bca7f02 vp9: fix integer overflow in 10/12bpp DC-only calculation. 2015-09-05 15:50:01 -04:00
Ronald S. Bultje
1f7871ec42 vp9: fix edge copy for 10/12bpp frames. 2015-09-05 15:50:01 -04:00
Ronald S. Bultje
9cdeb105a6 vp9: do unscaled MC in scaled path if size of this reference matches.
This can happen if we do bidirectional MC, where one reference has the
same size as the current frame, but the other one doesn't.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
873dbc6758 vp9: sync segmentation.absolute_vals between threads. 2015-09-05 15:50:00 -04:00
Ronald S. Bultje
3d7173b509 vp9: always sync segmentation.feat between threads. 2015-09-05 15:50:00 -04:00
wm4
89b0a9f3fa avcodec/vdpau: remove incompatible-libav-abi hack from vdpau_render_state struct 2015-09-05 16:45:26 -03:00
Hendrik Leppkes
160e92c8bf Merge commit 'e88103a7f92cf27a2868b50acc8a9912f6088249'
* commit 'e88103a7f92cf27a2868b50acc8a9912f6088249':
  Bump major versions of all libraries

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 21:35:46 +02:00
Hendrik Leppkes
590ea32e54 Postpone removal of API changes from within the last two years 2015-09-05 21:21:20 +02:00
Hendrik Leppkes
24e3bac52a avcodec: remove deprecated codec id aliases 2015-09-05 21:15:58 +02:00
Hendrik Leppkes
76cac7ed45 avcodec: remove deprecated old video encode API 2015-09-05 21:15:57 +02:00
Hendrik Leppkes
64c33f9624 avcodec: remove deprecated old audio encode API 2015-09-05 21:15:55 +02:00
Hendrik Leppkes
2c8ee2547e avcodec: remove deprecated old audio decode API 2015-09-05 21:15:54 +02:00
James Almer
c956cb2c02 avutil/pixfmt: remove duplicate AVPixelFormat values
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-05 15:51:55 -03:00
Hendrik Leppkes
d83dd630a0 lavu: Drop FF_API_GET_CHANNEL_LAYOUT_COMPAT cruft
FATE refs changed to accomodate for the new default behavior of the function.
Numbers are now interpreted as a channel layout, instead of a number of channels.
2015-09-05 20:36:19 +02:00
James Almer
251fb7dcd4 avcodec: remove FF_API_DV_FRAME_PROFILE cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-05 14:16:16 -03:00
Hendrik Leppkes
3433228795 lavfi: remove old graph parser API with different semantics
This API hasn't been active since the last bump already.
2015-09-05 18:35:09 +02:00
Andy Wu
c43bd08f8b avformat/mp3dec: Make MP3 seek fast
When AVFMT_FLAG_FAST_SEEK is specified, make MP3 seek operation as
fast as possible.

When no "-usetoc" is specified, the default operation is using TOC
if available; otherwise, uses linear interpolation. This is useful
when seeking a large MP3 file with no TOC available. One example is
Podcast, many MP3 files are large, but no CBR/VBR tags. Most of
them are actually CBR. Even in VBR cases, this option sacrifices the
accuracy of playback time in exchange for responsiveness.
2015-09-05 18:32:58 +02:00
Hendrik Leppkes
237cf3786e lavu: Drop old deprecated AVOption API
Deprecated in 2011/10
2015-09-05 18:30:35 +02:00