Commit Graph

164 Commits

Author SHA1 Message Date
Mark Thompson 2923ed247e vaapi_encode: Support configurable slices
This adds common code to query driver support and set appropriate
address/size information for each slice.  It only supports rectangular
slices for now, since that is the most common use-case.
2018-10-27 19:35:35 +01:00
Mark Thompson d5451a9b07 doc/encoders: Document -sei option to hevc_vaapi 2018-09-23 14:42:34 +01:00
Mark Thompson bfc4d0f6e4 vaapi_encode_h265: Set level based on stream if not set by user
Sets the level based on the stream properties if it is not explicitly
set by the user.  Also add a tier option to set general_tier_flag, since
that affects the level choice.
2018-09-23 14:42:34 +01:00
Mark Thompson ff0eb2bce3 vaapi_encode_mjpeg: Use CBS to store parameters and write headers
Also adds greyscale, 4:2:2, 4:4:4 and RGB support.
2018-09-23 14:42:34 +01:00
Mark Thompson c2e2b04df3 doc/encoders: Add missing options to VAAPI encoders 2018-09-23 14:42:34 +01:00
Mark Thompson 8479f99c7d vaapi_encode: Add support for max QP in rate control
This was added in libva 2.1.0 (VAAPI 1.1.0).  Use AVCodecContext.qmax,
matching the existing behaviour for qmin, and clean up the defaults so
that we only pass min/max when explicitly set.
2018-09-23 14:42:33 +01:00
Mark Thompson af532c9215 vaapi_encode: Clean up rate control configuration
Query which modes are supported and select between VBR and CBR based
on that - this removes all of the codec-specific rate control mode
selection code.
2018-09-23 14:42:33 +01:00
Mark Thompson aa2563aecc vaapi_encode: Add common options between all encoders
The only common option here is low_power - it was previously supported
for H.264 only, that specific option is removed.
2018-09-23 14:42:33 +01:00
Mark Thompson 3b188666f1 vaapi_encode: Choose profiles dynamically
Previously there was one fixed choice for each codec (e.g. H.265 -> Main
profile), and using anything else then required an explicit option from
the user.  This changes to selecting the profile based on the input format
and the set of profiles actually supported by the driver (e.g. P010 input
will choose Main 10 profile for H.265 if the driver supports it).

The entrypoint and render target format are also chosen dynamically in the
same way, removing those explicit selections from the per-codec code.
2018-09-23 14:42:33 +01:00
hwren bc1097a2bf lavc/libxavs2: remove nonexistent parameters
Signed-off-by: hwren <hwrenx@126.com>
2018-09-17 23:20:40 +01:00
hwren 85a921f461 lavc, doc, configure: add libxavs2 video encoder wrapper
Signed-off-by: hwren <hwrenx@126.com>
2018-09-11 21:48:42 +01:00
Gyan Doshi cdd6a525e4 doc/encoders: list missing options for x265
Add entries for crf and profile in libx265 section

Signed-off-by: Lou Logan <lou@lrcd.com>
2018-03-30 14:03:03 -08:00
Marton Balint ce6ce595cf avcodec/mpeg12enc: add support for specifying video_format in the sequence_display_extension
In a recent commit the default was changed from 0 (component) to 5
(unspecified), however some standards require using 0. With this option, the
user will be able to do so.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-02-13 00:13:21 +01:00
Menno 204c7caf0d avcodec/libopus: support disabling phase inversion.
Signed-off-by: Menno <mrdegier@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-06 23:07:10 +01:00
Rostislav Pehlivanov fcb681ac3e aacenc: use the fast coder as the default
The twoloop coder sounds decent at low bitrates, however at higher bitrates
it sounds worse than the fast coder (which used to be the old twoloop coder
before October 2015) and needs quite a lot more CPU.
Change the default to fast. It has been well tested and has had little changes
over the years so its been confirmed to be quite stable.
Also change its description (not valid for more than a year) and the
documentation.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2018-01-13 12:03:19 +00:00
James Zern 86cead5256 libvpxenc,vp9: add corpus-complexity option
Corpus VBR mode is a variant of standard VBR where the complexity
distribution midpoint is passed in rather than calculated for a specific
clip or chunk.

The valid range is [0, 10000]. 0 (default) uses standard VBR.

Signed-off-by: James Zern <jzern@google.com>
2017-11-28 15:17:51 -08:00
James Zern 3071434f4d lavc/libvpxenc: add tune-content option
this matches the vpxenc parameter

Signed-off-by: James Zern <jzern@google.com>
2017-11-17 12:06:38 -08:00
James Almer a2b0602cda Merge commit '4141a5a240fba44b4b4a1c488c279d7dd8a11ec7'
* commit '4141a5a240fba44b4b4a1c488c279d7dd8a11ec7':
  Use modern avconv syntax for codec selection in documentation and tests

Merged-by: James Almer <jamrial@gmail.com>
2017-10-03 21:28:07 -03:00
Lou Logan 183fd30e0f Fix several typos
"apix_fmts" found by Marc Péchaud.
"speedloss" found by Mikhail V.

Signed-off-by: Lou Logan <lou@lrcd.com>
2017-09-21 16:17:02 -08:00
Jun Zhao b8b84f9af5 doc/encoders: add "coder" option documentation for h264_vaapi
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2017-08-20 14:24:25 +01:00
Mark Thompson 9c878651db vaapi_encode: Move quality option to common code
Use AVCodecContext.compression_level rather than a private option,
replacing the H.264-specific quality option (which stays only for
compatibility).

This now works with the H.265 encoder in the i965 driver, as well as
the existing cases with the H.264 encoder.

(cherry picked from commit 19388a7200)
2017-08-20 12:56:24 +01:00
Leo Izen cbd8e07056 encoders.texi: Replace x264 --full-help suggestion with --fullhelp
Reviewed-by: Steven Liu <lingjiujianke@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-16 03:35:24 +02:00
Mark Thompson e6b4fb95d7 doc: Fix names of VAAPI encoders
They were all reversed (oops).
2017-07-18 23:36:06 +01:00
Paul B Mahol bbaca6e867 avcodec/proresenc_kostya: add 4444XQ profile
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-06-27 13:53:51 +02:00
Mark Thompson dc81f1a2ce doc: Add VAAPI encoders
(cherry picked from commit 41dda86087)
2017-06-24 17:41:59 +01:00
James Zern 1bee78a019 libvpxenc: allow aq-mode 4 (equator360)
this was added in 1.6.0

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
2017-04-28 17:56:09 -07:00
James Zern fd1443b5dd doc/encoders.texi: document libvpxenc's -row-mt
added in:
734d760e2f lavc/libvpxenc: add -row-mt option

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Zern <jzern@google.com>
2017-04-17 23:28:09 -07:00
James Almer 68ee800a9d doc/encoders: mention valid values for compression_level when using FLAC encoder
Found-by: Miles
Signed-off-by: James Almer <jamrial@gmail.com>
2017-03-03 13:49:26 -03:00
Diego Biurrun 4141a5a240 Use modern avconv syntax for codec selection in documentation and tests 2017-02-27 10:36:45 +01:00
Rostislav Pehlivanov 3a7f0055b4 doc/encoders: add documentation for the Opus encoder
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-02-14 06:15:36 +00:00
Ricardo Constantino dac51d2bbd doc/encoders: fix broken build with 884506dfe2 2017-02-08 15:55:40 +00:00
Jerry Jiang 884506dfe2 Implement optimal huffman encoding for (M)JPEG.
> seems to break
> make fate-vsynth1-mjpeg-444

Fixed.
2017-02-08 13:59:53 +00:00
Moritz Barsnick 5dbce5120b doc: document cutoff option to ac3 and adjust the option's global documentation
cutoff is implemented as an option global to lavc, but supported only
by a few encoders. This fact is now reflected in its documentation. ac3's
support of this option is added for completeness.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-31 17:20:06 +01:00
Moritz Barsnick 6c442e1584 lavc/libmp3lame: add support for cutoff
Pass the cutoff option from lavc's avcodec_options[] to libmp3lame's
lowpass option, without allowing to adjust its default behavior.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-31 17:20:06 +01:00
Lou Logan 872b358903 doc/encoders: sort list into alphabetical order
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-11-10 14:41:37 -09:00
Tom Butterworth 48f0e41c30 doc/encoders: add documentation for the Hap encoder
Documents options and behaviour, noting when 'chunks' option will
not be honoured.

Signed-off-by: Tom Butterworth <bangnoise@gmail.com>
Signed-off-by: Martin Vignali <martin.vignali@gmail.com>
2016-11-10 14:08:30 -09:00
Derek Buitenhuis b54fd42d7d doc/libx26[45]: Add documentation for forced-idr
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-11-06 15:26:08 +01:00
Andreas Cadhalpun c8a6eb58d7 doc: fix spelling errors
Thanks to Mathieu Malaterre <malat@debian.org> for reporting the
Que/Queue typo. (https://bugs.debian.org/839542)

Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-10-21 23:58:47 +02:00
Carl Eugen Hoyos df9b151a1b doc: Update x264 option a53cc, forgotten in 93e04102. 2016-10-17 19:11:18 +02:00
Josh de Kock dc0f711459 lavc: remove libfaac wrapper
There is really no need for two aac wrappers, we already have
libfdk-aac which is better. Not to mention that faac doesn't
even support HEv1, or HEv2. It's also under a license which is
unusable for distribution, so it would only be useful to people
who will compile their own ffmpeg, only use it themselves (which
at that point should just use fdk-aac).

Signed-off-by: Josh de Kock <josh@itanimul.li>
2016-10-01 19:58:04 +01:00
Moritz Barsnick 2c48014ab2 doc/encoders: minor aac encoder formatting improvements
Also corrected a line's level.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
2016-09-19 19:17:34 +01:00
James Almer d688f39dc4 cosmetics: fix some misspelled words
Signed-off-by: James Almer <jamrial@gmail.com>
2016-07-17 13:10:27 -03:00
Michael Graczyk 37941878f1 libopusenc: Add channel mapping family argument
The default value of -1 indicates that ffmpeg should determine the channel
mapping automatically, which was the behavior before this commit.

Unless the -mapping_family argument is provided, behavior is unchanged.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-02 23:31:16 +02:00
Vittorio Giovara 41ed7ab45f cosmetics: Fix spelling mistakes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Rostislav Pehlivanov d119268ed2 doc/encoders: fix typos in the vc2 encoder documentation
Thanks to RiCON for pointing these out.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-12 18:42:24 +00:00
Rostislav Pehlivanov 0384e3d5df doc/encoders: add documentation for the VC-2 encoder
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-02-12 16:50:07 +00:00
Timothy Gu 32fed702b8 libvpxenc: Allow setting tune parameter 2016-02-07 09:12:46 -08:00
Kieran Kunhya e07e88cd82 avcodec: Remove libvo-aacenc support.
The internal encoder is superior to libvo-aacenc.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2016-01-29 17:26:42 -08:00
Rostislav Pehlivanov ba4c2917eb doc/encoders: fix typo in AAC encoder documentation
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-01-09 13:20:42 +00:00
Michael Niedermayer a30238621d doc/encoders: Fix application name
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-02 19:23:00 +01:00