Mark Thompson
28aedeed19
qsvenc: Allow use of hw_device_ctx to make the internal session
...
(cherry picked from commit 3d197514e6 )
2017-06-14 22:26:32 +01:00
Mark Thompson
91c3b50d74
qsv: Add ability to create a session from a device
...
(cherry picked from commit 4936a48b1e )
2017-06-14 22:26:32 +01:00
Aaron Levinson
ae5b67ee64
qsvenc: Make sure the interlaced encoding works
...
Purpose: qsvenc: make sure that interlaced encoding works. Also,
reduce the vertical alignment constraint when possible to reduce
memory usage.
Note: Most of this code used to be present in ffmpeg and was
eliminated in revision 1f26a23 on Oct. 31, 2016 (qsv: Merge libav
implementation, at
1f26a231bb
edfa#diff-7d84a34d58597bb7aa4b8239dca1f9f8). Already applied to
libav.
Reviewed-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit 8fd8f91e47 )
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Aaron Levinson <alevinsn@aracnet.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-05-09 03:22:14 +02:00
Aaron Levinson
dd8319767e
qsvenc: Use MFXVideoENCODE_Query() to update the parameters
...
Purpose: Fill out the default/unset parameters with ones actually in use.
Note: Matches the current MediaSDK example code. This code used to be
present in ffmpeg and was eliminated in revision 1f26a23 on Oct. 31,
2016 (qsv: Merge libav implementation, at
1f26a231bb (diff-7d84a34d58597bb7aa4b8239dca1f9f8) ).
Already applied to libav.
Reviewed-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit b22094d749 )
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Aaron Levinson <alevinsn@aracnet.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-05-09 03:22:14 +02:00
Mark Thompson
ff821fdfce
Merge commit ' 4ab61cd983'
...
* commit '4ab61cd983 ':
qsv{enc,dec}: extend the internal frame allocator
Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 22:07:57 +01:00
Mark Thompson
c0f2a8eac1
Merge commit ' 00aeedd841'
...
* commit '00aeedd841 ':
qsv{dec,enc}: use a struct as a memory id with internal memory allocator
Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 22:06:03 +01:00
Mark Thompson
2f18e452f8
Merge commit ' 404e51478e'
...
* commit '404e51478e ':
qsv{dec,enc}: always use an internal mfxFrameSurface1
Minor fixups for differences in the QSV encoder because of a53cc.
Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 22:00:03 +01:00
Mark Thompson
a7434ef195
Merge commit ' 8e07c22e50'
...
* commit '8e07c22e50 ':
qsvenc: print warnings from encode/init
Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 15:21:41 +00:00
Mark Thompson
15887a410c
Merge commit ' 95414eb2dc'
...
* commit '95414eb2dc ':
qsv: print more complete error messages
Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 15:19:05 +00:00
Mark Thompson
723a542d6c
Merge commit ' d9ec3c6014'
...
* commit 'd9ec3c6014 ':
qsvenc: take only the allocated dimensions from the frames context
Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 15:06:07 +00:00
Mark Thompson
562f386c77
Merge commit ' 37a9015ee8'
...
* commit '37a9015ee8 ':
qsvenc: add support for p010
Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 15:04:45 +00:00
Anton Khirnov
4ab61cd983
qsv{enc,dec}: extend the internal frame allocator
...
Handle the internal frame requests, which is required by the HEVC
encoding plugin.
Signed-off-by: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
2016-11-07 12:48:00 +01:00
Anton Khirnov
00aeedd841
qsv{dec,enc}: use a struct as a memory id with internal memory allocator
...
This will allow implementing the allocator more fully, which is needed
by the HEVC encoder plugin with video memory input.
Signed-off-by: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
2016-11-07 12:47:54 +01:00
Anton Khirnov
404e51478e
qsv{dec,enc}: always use an internal mfxFrameSurface1
...
For encoding, this avoids modifying the input surface, which we are not
allowed to do.
This will also be useful in the following commits.
Signed-off-by: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
2016-11-07 12:47:46 +01:00
Anton Khirnov
fb240a6276
qsvenc: do not re-execute encoding on all positive status codes
...
It should only be done for DEVICE_BUSY/IN_EXECUTION
(cherry picked from commit 0956fd4606 )
Fixes ticket #5924 .
2016-11-04 18:56:01 +00:00
Kyle Schwarz
5d54293668
avcodec/qsv: remove MFX_EXTBUFF_CODING_OPTION3
...
4th generation Intel CPUs don't support MFX_EXTBUFF_CODING_OPTION3.
This patch fixes bug #5324 .
2016-10-31 19:23:40 +00:00
Mark Thompson
1f26a231bb
qsv: Merge libav implementation
...
Merged as-at libav 398f015 , and therefore includes outstanding
skipped merges 04b17ff and 130e1f1 .
All features not in libav are preserved, and no options change.
2016-10-31 19:23:40 +00:00
Anton Khirnov
8e07c22e50
qsvenc: print warnings from encode/init
2016-07-22 19:08:13 +02:00
Anton Khirnov
95414eb2dc
qsv: print more complete error messages
...
Include the libmfx error code and its description
2016-07-22 19:08:13 +02:00
Anton Khirnov
d9ec3c6014
qsvenc: take only the allocated dimensions from the frames context
...
Other parameters, like the display size, should still be taken from the
codec context.
2016-07-22 19:08:13 +02:00
Anton Khirnov
37a9015ee8
qsvenc: add support for p010
2016-07-22 19:08:13 +02:00
Anton Khirnov
0956fd4606
qsvenc: do not re-execute encoding on all positive status codes
...
It should only be done for DEVICE_BUSY/IN_EXECUTION
2016-07-22 19:08:13 +02:00
Anton Khirnov
ad9c9440d5
qsvenc: support getting the session from an AVHWFramesContext
2016-06-21 19:53:38 +02:00
Andrey Turkin
63adb3602d
libavcodec: factor out SEI generation for A53 captions
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-19 02:11:20 +02:00
Derek Buitenhuis
acc155ac55
Merge commit ' a1335149fd'
...
* commit 'a1335149fd ':
qsvenc: store the sync point in heap memory
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-11 14:45:57 +01:00
Maxym Dmytrychenko
a1335149fd
qsvenc: store the sync point in heap memory
...
The QSV runtime expects the sync point address passed to
MFXVideoENCODE_EncodeFrameAsync() to be valid until
MFXVideoCORE_SyncOperation().
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-02-24 10:14:40 +01:00
Derek Buitenhuis
c63da6e916
Merge commit ' 9cac1b4b4f'
...
* commit '9cac1b4b4f ':
qsvenc: Add private option to replace coder_type
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 16:51:45 +00:00
Derek Buitenhuis
02bd02da5f
qsvenc: Fix b_strategy typo
...
This was introduced in 0e6c853221 .
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 00:08:40 +00:00
Derek Buitenhuis
2e9b995e4f
Merge commit ' 0e6c853221'
...
* commit '0e6c853221 '
lavc: Move b_frame_strategy and b_sensitivity to codec private options
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 20:18:04 +00:00
Vittorio Giovara
9cac1b4b4f
qsvenc: Add private option to replace coder_type
...
Missing from be00ec832c .
2016-01-25 12:00:16 -05:00
Anton Khirnov
68395f8c99
qsvenc: fix a typo
...
Introduced in 0e6c853221 .
2016-01-23 21:03:31 +01:00
Vittorio Giovara
0e6c853221
lavc: Move b_frame_strategy and b_sensitivity to codec private options
...
The b_frame_strategy option is only used by mpegvideoenc, qsv, x264, and
xavs, while b_sensitivity is only used by mpegvideoenc.
These are very codec-specific options, so deprecate the global variants.
Set proper limits to the maximum allowed values.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Hendrik Leppkes
ed9cff9edf
Merge commit ' d1cd20e4e3'
...
* commit 'd1cd20e4e3 ':
qsvenc: split encoding frames and reading from the async FIFO
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:44:50 +01:00
Hendrik Leppkes
b5513441e4
Merge commit ' a6259a6ecb'
...
* commit 'a6259a6ecb ':
qsvenc: properly handle the warning from MFXVideoCORE_SyncOperation
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:43:03 +01:00
Anton Khirnov
d1cd20e4e3
qsvenc: split encoding frames and reading from the async FIFO
...
This makes sure all the frames are returned at the end.
Found-By: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
2016-01-07 08:20:21 +01:00
Maxym Dmytrychenko
a6259a6ecb
qsvenc: properly handle the warning from MFXVideoCORE_SyncOperation
...
Same as what is done in 3b6473b43e .
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-01-07 08:20:21 +01:00
Hendrik Leppkes
b2d8b91cf0
Merge commit ' 825900248b'
...
* commit '825900248b ':
qsvenc: export CPB props side data
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 13:42:53 +01:00
Anton Khirnov
825900248b
qsvenc: export CPB props side data
2015-12-06 10:25:49 +01:00
Will Kelleher
0eac93da0f
qsvenc: write a53 caption data to SEI
...
Signed-off-by: Will Kelleher <wkelleher@gogoair.com>
Previous version reviewed-by: Ivan Uskov <ivan.uskov@nablet.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-30 23:31:12 +01:00
Hendrik Leppkes
5bc9c7a6db
Merge commit ' fc4c27c4ed'
...
* commit 'fc4c27c4ed ':
qsvenc: expose additional encoding options
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:22:53 +01:00
Hendrik Leppkes
24563c20f1
Merge commit ' e7d7cf86dc'
...
* commit 'e7d7cf86dc ':
qsvenc: support more RC methods
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 15:18:08 +01:00
Derek Buitenhuis
98540a2c7d
Merge commit ' 4d8f536b53'
...
* commit '4d8f536b53 ':
qsvenc: print the actual video parameters used by MSDK
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 17:46:57 +00:00
Anton Khirnov
fc4c27c4ed
qsvenc: expose additional encoding options
2015-11-20 09:29:50 +01:00
Anton Khirnov
e7d7cf86dc
qsvenc: support more RC methods
2015-11-20 09:29:13 +01:00
Anton Khirnov
3edac01f79
qsvenc: fix setting maxrate for VBR
2015-11-20 09:25:58 +01:00
Anton Khirnov
4d8f536b53
qsvenc: print the actual video parameters used by MSDK
2015-11-20 09:23:22 +01:00
Hendrik Leppkes
866a4174db
Merge commit ' dc923bc23b'
...
* commit 'dc923bc23b ':
qsvenc: add an API for allocating opaque surfaces
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 15:55:43 +02:00
Hendrik Leppkes
a440886a35
Merge commit ' 2ec96b6bd5'
...
* commit '2ec96b6bd5 ':
qsvenc: cosmetics, reindent
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 15:49:26 +02:00
Hendrik Leppkes
2fece1e4d5
Merge commit ' f6f32fc93d'
...
* commit 'f6f32fc93d ':
qsvenc: set the timestamp for PIX_FMT_QSV frames as well
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 15:48:11 +02:00
Hendrik Leppkes
760dbdd3c5
Merge commit ' 772c87c5a6'
...
* commit '772c87c5a6 ':
qsvenc: support passing arbitrary external buffers to the encoder
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 15:46:52 +02:00