Commit Graph

1907 Commits

Author SHA1 Message Date
Timothy Gu
5f1c37aefb avcodec: Fix make checkheaders 2015-08-22 10:14:17 -07:00
Rostislav Pehlivanov
76b81b10d9 aacenc: implement the complete AAC-Main profile
This commit finalizes AAC-Main profile encoding support
by implementing all mandatory and optional tools available
in the specifications and current decoders.

The AAC-Main profile reqires that prediction support be
present (although decoders don't require it to be enabled)
for an encoder to be deemed capable of AAC-Main encoding,
as well as TNS, PNS and IS, all of which were implemented
with previous commits or earlier of this year.

Users are encouraged to test the new functionality using either
-profile:a aac_main or -aac_pred 1, the former of which will enable
the prediction option by default and the latter will change the
profile to AAC-Main. No other options shall be changed by enabling
either, it's currently up to the users to decide what's best.

The current implementation works best using M/S and/or IS,
so users are also welcome to enable both options and any
other options (TNS, PNS) for maximum quality.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:38:05 +01:00
Rostislav Pehlivanov
a1c487e921 aacenc_tns: implement temporal noise shaping
This commit implements temporal noise shaping support in the
encoder, along with an -aac_tns option to toggle it on or off
(off by default for now). TNS will increase audio quality
and reduce quantization noise by applying a multitap FIR filter
across allowed coefficients and transmit side information to the
decoder so it could create an inverse filter.

Users are encouraged to test the new functionality by enabling
-aac_tns 1 during encoding.

No major bugs are observable at this time so after a while if no
new problems appear and if the current implementation is deemed
of high enough quality and stability it will be enabled by default,
possibly at the same time the encoder has its experimental flag
removed and becomes the standard aac encoder in ffmpeg.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:27:38 +01:00
Rostislav Pehlivanov
d1ca7142ac aaccoder: move the Intensity Stereo implementation out
This commit moves the intensity stereo implementation
out from aaccoder and into a separate file. This was
possible using the previous commits.

This commit also drastically improves the IS implementation
by making it phase invariant e.g. it will always choose the
best possible phase regardless of whether M/S coding is on
or most of the coefficients have identical phases.
This also increases the quality and reduces any distortions
introduced by enablind intensity stereo.

Users are encouraged to test it out using the -aac_is 1
parameter as it has always been.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:13:26 +01:00
Andreas Cadhalpun
107e54c5bf avutil: add ff_reverse as av_reverse replacement
The table is used in libavutil/eval.c.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-12 00:14:14 +02:00
Ganesh Ajjanagadde
0581ab2cac avcodec/g729: add g729_parser
Add trivial g729 parser; fixes Ticket4753

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-11 23:16:35 +02:00
Carl Eugen Hoyos
7e9cd99627 lavc: The h263 encoder (also) depends on h263data.o 2015-08-08 12:11:33 +02:00
Rostislav Pehlivanov
c47c781e83 aacenc: Move local encoder specific tables to a separate file
This commit moves any tables specific to the encoder from aacenc
and aaccoder to a separate file called 'aacenctab.c/.h'.
This was done as a clean up attempt as the encoder was filled with
tables pasted in between functions which made it confusing to follow
and track where each table and definition had been used.
This commit solves this by simply exporting the smaller tables out to
the aacenctab.h while the larger ones are compiled using aacenctab.c
and are referenced from the header file.

Signed-off-by: Claudio Freire <klaussfreire@gmail.com>
2015-08-07 03:58:07 -03:00
Sebastien Zwickert
11d923d414 avcodec: add new Videotoolbox hwaccel. 2015-08-03 10:12:10 +02:00
Michael Niedermayer
508b79e6c1 Merge commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986'
* commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986':
  lavc: add Intel libmfx-based HEVC decoder.

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/qsvdec.c
	libavcodec/qsvdec_h2645.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 01:20:46 +02:00
Michael Niedermayer
bb619f41be Merge commit 'bf52f773913cf74bdf0d2c8c2cb4473fa1b7801e'
* commit 'bf52f773913cf74bdf0d2c8c2cb4473fa1b7801e':
  lavc: add Intel libmfx-based MPEG2 decoder.

Conflicts:
	configure
	libavcodec/qsvdec_mpeg2.c

Some cosmetics merged, rest is related to the removed parser code and
thus not merged

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 00:59:57 +02:00
Michael Niedermayer
15bcbc9d3b Merge commit 'f89f78c1c563d98f10ee1d7e1ed67c9f9e03b741'
* commit 'f89f78c1c563d98f10ee1d7e1ed67c9f9e03b741':
  lavc: add a HEVC mp4->annex B bitstream filter

Conflicts:
	Changelog

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 00:34:27 +02:00
Ivan Uskov
fb57bc6c34 avcodec: Add QSV VC-1 video decoder.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 19:32:22 +02:00
Anton Khirnov
41d47ea85f lavc: add Intel libmfx-based HEVC decoder. 2015-07-25 17:37:01 +02:00
Anton Khirnov
bf52f77391 lavc: add Intel libmfx-based MPEG2 decoder. 2015-07-25 17:36:59 +02:00
Ivan Uskov
6d0123f40e avcodec: Add QSV MPEG-2 video decoder.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 17:31:18 +02:00
Anton Khirnov
f89f78c1c5 lavc: add a HEVC mp4->annex B bitstream filter 2015-07-25 17:26:53 +02:00
Djordje Pesut
5fd81cf6f0 avcodec: Implementation of AAC_fixed_decoder (PS-module)
Add fixed point implementation.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 21:51:28 +02:00
Tom Butterworth
c7e6443441 Support the Hap chunked frame format
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22 16:15:53 +02:00
Djordje Pesut
f85bc147fb avcodec: Implementation of AAC_fixed_decoder (SBR-module)
Add fixed poind code.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 17:20:16 +02:00
Jovan Zelincevic
b0414da90d avcodec: Table creation for AAC_fixed_decoder (SBR-module)
Create tables for fixed point code.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 17:20:16 +02:00
Michael Niedermayer
65b0f7ce08 Merge commit 'a623aa0069dff586241ad2ffedcd45ed840e2553'
* commit 'a623aa0069dff586241ad2ffedcd45ed840e2553':
  configure: Factor out wmv2dsp module

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 22:56:00 +02:00
Michael Niedermayer
115a9b5091 Merge commit 'd42191c78befc1983f23b1899b2dda513b72f1ed'
* commit 'd42191c78befc1983f23b1899b2dda513b72f1ed':
  configure: Factor out vp8dsp module

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 22:45:34 +02:00
Michael Niedermayer
3500eccb8e Merge commit 'd4aea1aa4060fb5ba7f5f426823b697d2a5af08b'
* commit 'd4aea1aa4060fb5ba7f5f426823b697d2a5af08b':
  configure: Factor out vp56dsp module

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 22:31:45 +02:00
Michael Niedermayer
fd29dd432c Merge commit '5cb4bdb2a03c3643f8f1e7d21d7094e61e0a4418'
* commit '5cb4bdb2a03c3643f8f1e7d21d7094e61e0a4418':
  configure: Factor out rv34dsp module

Conflicts:
	libavcodec/Makefile
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 22:21:36 +02:00
Michael Niedermayer
77cd5193a5 Merge commit '575ec60e542114b2ef5b2f88b28eeb72389dda45'
* commit '575ec60e542114b2ef5b2f88b28eeb72389dda45':
  configure: Factor out mss34dsp module

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:59:45 +02:00
Michael Niedermayer
ccd3edf81f Merge commit '2edc77dc7be5f4a006c6295f4c827e5471f85262'
* commit '2edc77dc7be5f4a006c6295f4c827e5471f85262':
  configure: Factor out ividsp module

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:51:19 +02:00
Michael Niedermayer
948a15195c Merge commit 'b075869bc1e1aadea0a8dc819ebfb758adb9e3d0'
* commit 'b075869bc1e1aadea0a8dc819ebfb758adb9e3d0':
  configure: Factor out flacdsp module

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/arm/Makefile

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:42:14 +02:00
Michael Niedermayer
e56f14659f Merge commit 'e1319aa1c1be9b64117c19170344fb78841dd67c'
* commit 'e1319aa1c1be9b64117c19170344fb78841dd67c':
  libx264: Add support for the MPEG2 encoder

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/libx264.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:21:03 +02:00
Vittorio Giovara
a623aa0069 configure: Factor out wmv2dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
d42191c78b configure: Factor out vp8dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
d4aea1aa40 configure: Factor out vp56dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
5cb4bdb2a0 configure: Factor out rv34dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
575ec60e54 configure: Factor out mss34dsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
2edc77dc7b configure: Factor out ividsp module 2015-07-17 18:46:24 +01:00
Vittorio Giovara
b075869bc1 configure: Factor out flacdsp module 2015-07-17 18:46:23 +01:00
Luca Barbato
e1319aa1c1 libx264: Add support for the MPEG2 encoder 2015-07-17 10:47:48 +02:00
Arttu Ylä-Outinen
b90b6af710 avcodec: add libkvazaar HECV encoder
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 18:00:36 +02:00
Michael Niedermayer
5be07d0206 Merge commit 'a062a55d37720abc8c704aa0e8682efd3cdc9c9b'
* commit 'a062a55d37720abc8c704aa0e8682efd3cdc9c9b':
  hevc_parser: fix standalone build with the hevc decoder disabled

Conflicts:
	libavcodec/Makefile
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 17:04:13 +02:00
Anton Khirnov
a062a55d37 hevc_parser: fix standalone build with the hevc decoder disabled
The parser depends on hevc_ps, which in turn needs some data tables.

Found-by: James Almer <jamrial@gmail.com>
2015-07-13 08:58:21 +02:00
Michael Niedermayer
9e810a98a2 Merge commit '650060dfb665552442ec11b456660e3e9a9d9016'
* commit '650060dfb665552442ec11b456660e3e9a9d9016':
  hevc_parser: parse and export some stream parameters

Conflicts:
	configure
	libavcodec/hevc_parser.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-13 01:28:57 +02:00
Anton Khirnov
650060dfb6 hevc_parser: parse and export some stream parameters
Particularly those that will be needed by the QSV decoder.
More can be added later as necessary.
2015-07-12 18:15:40 +02:00
Luca Barbato
461b45efd0 lavc: Add nvenc.h to the skipheader
Unbreak make checkheaders
2015-07-09 21:34:57 +02:00
Jovan Zelincevic
f21b4472ef libavcodec: Implementation of AAC_fixed_decoder (LC-module) [4/4]
Build system modified

There are several warnings occurring during build after this patch is
applied. The cause of most of these warnings is in that some definitions
needed here are logical part of sbr module and are added in later patches.
When this patches are applied these warnings stop occurring.

The only warning that is added here and is not fixed with later patches
is warning that warns that type mismatch for table ff_aac_eld_window_480.

The reason for this warning is in that ER AAC ELD 480 is not integrated in
to the fixed point implementation at this moment and there is no fixed point
version of this table.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 14:41:41 +02:00
Michael Niedermayer
7871eb4361 Merge commit '66acb76bb0492b263215ca9b4d927a7be39ace02'
* commit '66acb76bb0492b263215ca9b4d927a7be39ace02':
  lavc: add Intel libmfx-based HEVC encoder

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/qsv.c
	libavcodec/qsvenc.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 11:53:14 +02:00
Michael Niedermayer
96ee6b9962 Merge commit '3a85397e8bb477eb34678d9edc52893f57003226'
* commit '3a85397e8bb477eb34678d9edc52893f57003226':
  lavc: add Intel libmfx-based MPEG2 encoder

Conflicts:
	Changelog
	configure
	libavcodec/allcodecs.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 11:17:12 +02:00
Michael Niedermayer
07ae8fa20e Merge commit '69ab9f53f901eac6a649e22d28cf093357870627'
* commit '69ab9f53f901eac6a649e22d28cf093357870627':
  hevc: split bitstream unescaping to a separate file

Conflicts:
	libavcodec/Makefile
	libavcodec/hevc.c

See: afa93d198a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 05:06:48 +02:00
Anton Khirnov
66acb76bb0 lavc: add Intel libmfx-based HEVC encoder 2015-07-08 23:40:11 +02:00
Anton Khirnov
3a85397e8b lavc: add Intel libmfx-based MPEG2 encoder 2015-07-08 23:39:28 +02:00
Anton Khirnov
69ab9f53f9 hevc: split bitstream unescaping to a separate file
It will be useful in the QSV HEVC encoder.
2015-07-08 23:38:32 +02:00