Commit Graph
16 Commits
Author SHA1 Message Date
Mark Thompson be6546a4ff vaapi_encode: Pass framerate parameters to driver
Only do this when building for a recent VAAPI version - initial
driver implementations were confused about the interpretation of the
framerate field, but hopefully this will be consistent everywhere
once 0.40.0 is released.

(cherry picked from commit ff35aa8ca4)
2017-02-08 19:14:05 +00:00
Mark ThompsonandMark Thompson 3b95c7c17d vaapi_encode: Add MPEG-2 support
(cherry picked from commit ca6ae3b77a)
2017-02-08 19:14:05 +00:00
Mark Thompson c667c0979c vaapi_encode: Support forcing IDR frames via AVFrame.pict_type
(cherry picked from commit a3c3a5eac2)
2017-02-08 19:14:04 +00:00
Mark Thompson 760f1a7727 vaapi_encode: Fix GOP sizing
This change makes the configured GOP size be respected exactly -
previously the value could be exceeded slightly due to flaws in the
frame type selection logic.

(cherry picked from commit 37fab0661a)
2017-02-08 19:14:04 +00:00
Mark Thompson 51020adcec vaapi_encode: Write sequence header as extradata
Only works if packed headers are supported, where we can know the
output before generating the first frame.

(cherry picked from commit 0cf86fabfa)
2016-12-05 21:04:00 +00:00
Mark Thompson 478a4b7e6d vaapi_encode: Check packed header capabilities
This improves behaviour with drivers which do not support packed
headers, such as AMD VCE on mesa/gallium.

(cherry picked from commit 892bbbcdc1)
2016-11-21 22:13:41 +00:00
Mark Thompson c8241e730f vaapi_encode: Refactor initialisation
This allows better checking of capabilities and will make it easier
to add more functionality later.

It also commonises some duplicated code around rate control setup
and adds more comments explaining the internals.

(cherry picked from commit 80a5d05108)
2016-11-21 22:13:41 +00:00
Hendrik Leppkes 724a71dced Merge commit '8a62d2c28fbacd1ae20c35887a1eecba2be14371'
* commit '8a62d2c28fbacd1ae20c35887a1eecba2be14371':
  vaapi_encode: Maintain a pool of bitstream output buffers

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-13 17:38:40 +01:00
Clément Bœsch 19fe328f12 Merge commit '19d7667a81499d4357ec8e0851701e17c238e584'
* commit '19d7667a81499d4357ec8e0851701e17c238e584':
  vaapi_encode: Add support for writing arbitrary additional packed headers

Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-29 12:03:20 +02:00
Mark Thompson 8a62d2c28f vaapi_encode: Maintain a pool of bitstream output buffers
Previously we would allocate a new one for every frame.  This instead
maintains an AVBufferPool of them to use as-needed.

Also makes the maximum size of an output buffer adapt to the frame
size - the fixed upper bound was a bit too easy to hit when encoding
large pictures at high quality.
2016-06-26 19:40:56 +01:00
Mark Thompson 19d7667a81 vaapi_encode: Add support for writing arbitrary additional packed headers 2016-06-09 21:15:39 +01:00
Derek Buitenhuis 8ed427f9f9 Merge commit '92fdea37477b5a2d1329e5ef0773e24473fa8f12'
These are all trivial to merge.

* commit '92fdea37477b5a2d1329e5ef0773e24473fa8f12':
  vaapi_h265: Add -qp option, use it to replace use of -global_quality
  vaapi_h265: Add constant-bitrate encode support
  vaapi_h264: Add encode quality option (for quality-speed tradeoff)
  vaapi_h264: Add -qp option, use it to replace use of -global_quality
  vaapi_encode: Add support for codec-local options
  vaapi_h264: Add constant-bitrate encode support
  vaapi_encode: Refactor slightly to allow easier setting of global options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-11 19:40:39 +01:00
Derek Buitenhuis 508957fd0f Merge commit '104c804bcaac24b52eb51ed17df2fb311e6ae73e'
* commit '104c804bcaac24b52eb51ed17df2fb311e6ae73e':
  lavc: VAAPI encode common infrastructure

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:41:12 +01:00
Mark ThompsonandAnton Khirnov 69b06ed428 vaapi_encode: Add support for codec-local options
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-15 10:07:05 +02:00
Mark ThompsonandAnton Khirnov f6b8552369 vaapi_encode: Refactor slightly to allow easier setting of global options
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-15 10:07:04 +02:00
Mark ThompsonandAnton Khirnov 104c804bca lavc: VAAPI encode common infrastructure
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-30 09:05:28 +02:00