Stéphane Cerveau
1f62fe1cbc
kms: add fallback on libdrm project if available.
2020-04-03 10:53:01 +00:00
Haihao Xiang
4cc5321010
msdkh265dec: add support for main-444-12, main-444-12-intra profiles
...
The video format is Y412_LE
2020-04-03 01:19:45 +00:00
Haihao Xiang
4d756c07b0
msdk: map Y412_LE to VA_FOURCC_Y416
...
In media driver, VA_FOURCC_Y416 is used for packed 12 bits 4:4:4:4 YUV
format, the corresponding RT format is VA_RT_FORMAT_YUV442_12
2020-04-03 01:19:45 +00:00
Haihao Xiang
55ed9458b5
msdk: map MFX_FOURCC_Y416 to VA_FOURCC_Y416
...
Y416 is used for packed 12 bits 4:4:4:4 YUV format in media driver, the
RT format is VA_RT_FORMAT_YUV444_12
2020-04-03 01:19:45 +00:00
Haihao Xiang
e769df9689
msdk: map Y412_LE to MFX_FOURCC_Y416
...
MFX_FOURCC_Y416 is used for packed 12 bits 4:4:4:4 YUV format in
MediaSDK
2020-04-03 01:19:45 +00:00
Haihao Xiang
3de690ceda
msdkh265dec: add support for main-422-12, main-422-12-intra profiles
...
The video format is Y212_LE
2020-04-03 01:19:45 +00:00
Haihao Xiang
01edef09a3
msdk: map Y212_LE to VA_FOURCC_Y216
...
In media driver, VA_FOURCC_Y216 is used for packed 12 bits 4:2:2 YUV
format, the corresponding RT format is VA_RT_FORMAT_YUV422_12
2020-04-03 01:19:45 +00:00
Haihao Xiang
34177985e2
msdk: map MFX_FOURCC_Y216 to VA_FOURCC_Y216
...
In media driver, Y216 is used for packed 12 bits 4:2:2 format YUV
format, so the RT format is VA_RT_FORMAT_YUV422_12.
2020-04-03 01:19:45 +00:00
Haihao Xiang
fb200ccfdd
msdk: map Y212_LE to MFX_FOURCC_Y216
...
MFX_FOURCC_Y216 is used for packed 12 bits 422 YUV format in MediaSDK
2020-04-03 01:19:45 +00:00
Seungha Yang
950aa3d1db
msdkh265enc: Fix for wrong parser free function
2020-04-03 00:42:23 +09:00
Jan Schmidt
46f994871f
adaptivedemux: Handle instant rate change requests directly
...
Downstream demuxers will first send seek events upstream to us.
Do the right thing with instant rate change requests by handling them
immediately.
2020-04-02 11:26:46 +00:00
Jan Schmidt
1c79b39896
adaptivedemux: Don't ignore gst_segment_do_seek() return result
...
gst_segment_do_seek() can fail, so don't ignore the return result
2020-04-02 11:26:46 +00:00
Jan Schmidt
b9ebd885ff
tsdemux: Send instant-rate-change event if requested in the SEEK event
...
Convert instant-rate-change seek events into a downstream
instant-rate-change event and skip any further local seek handling.
2020-04-02 11:26:46 +00:00
Seungha Yang
71cf93c361
msdkh264enc: Configure parser and SEI array only if it's required
2020-04-02 09:20:11 +00:00
Seungha Yang
206fe1534d
msdkh265enc: Add support for CEA708 closed caption insertion
...
Functionally identical to that of msdkh264enc
2020-04-02 09:20:11 +00:00
Seungha Yang
ce09ceb106
h265parser: Add a helper method to create SEI nal unit
...
Add an API to create raw SEI nal unit. This would be useful in case
an user want to create SEI nal data and inject the SEI nal data
into bitstream.
2020-04-02 09:20:11 +00:00
Miguel Paris
45a1070203
srtpdec: reduce log level for replay cases
...
These are normal cases, so DEBUG level is enough.
2020-04-01 17:45:15 +00:00
Miguel París Díaz
ed71e262b0
srtpdec: do not warning old replay errors
...
Reordered packets producing decrypting errors are very normal,
so we should filter which errors are warning and which not.
2020-04-01 17:45:15 +00:00
Miguel Paris
075ff1e8b0
srtpdec: fix reseting RTP sequence number on ROC changes
...
Each srtp_stream_t is tied to an specific SSRC, so a
roc_changed flag should be kept per each SSRC in order to
properly reset RTP sequence number on ROC changes.
2020-04-01 16:49:44 +02:00
Seungha Yang
fc9f7a6ade
d3d11: Update for video-hdr struct change
...
See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
2020-04-01 05:18:11 +00:00
Seungha Yang
bd706edc52
nvh265enc: Update for video-hdr struct change
...
See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
2020-04-01 05:18:11 +00:00
Seungha Yang
770a851e03
x265enc: Update for video-hdr struct change
...
See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
2020-04-01 05:18:11 +00:00
Seungha Yang
f05effe024
h264parse,h265parse: Update for video-hdr struct change
...
See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
2020-04-01 05:18:11 +00:00
Zeeshan Ali
355719bae7
h265parse: Set duration on buffers base on framerate
2020-03-31 14:13:30 +00:00
Zeeshan Ali
158d69fd45
h265parse: Derive src fps from vui_time_scale & vui_num_units_in_tick
2020-03-31 14:13:30 +00:00
Zeeshan Ali
51bc67d4ef
h265parse: Handle interlaced video
...
For interlaced video:
* set the interlace mode in the src caps
* double the height from SPS in the caps.
* set field latency, instead of frame latency.
Fix #778
2020-03-31 14:13:30 +00:00
Nicolas Dufresne
7b8c071f9c
codecs: h264dpb: Don't leak pic_list GArray
...
The contents was cleared, but the array was never released.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
4cb871eb53
v4l2codecs: Only build this plugin on Linux
...
This is not useful on any other OSs, it will also avoid potential build
failure as this code uses Linux specific calls.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
7254a18f0f
v4l2codecs: Add plugin dependency
...
This ensure that the registry cache get updated when a meaningful change is
made in /dev for files named media*.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
e70993bf43
v4l2codecs: Wait for buffers to come back
...
This code add required mechanism to try and allocate (not implemented yet)
otherwise wait for more buffers. This also comes with mechanism to terminate
the wait on flush or PAUSED_TO_READY transitions.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
09a9ffcda6
v4l2codecs: Implement flushing sequence
...
This simply consit of cycling through STREAMOFF/STREAMON with stateless
decoders.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
f69283819a
v4l2codecs: allocator: Add method to wait for more buffers
...
This add function to wait for buffers to get back into the pool along with a
set_flushing() method to allow unblocking this wait.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
bc0a8ff40d
v4l2codecs: pool: Create new buffer when pool is empty
...
This simply create an empty GstBuffer when the pool is empty. This way it's up
to the allocator to grow or wait if we ran out of memory.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
ee26c9c9a1
v4l2slh264dec: Improve end_picture() robustness
...
Use a goto to ensure that for all cases we cleanup the current picture state.
And move the src buffer allocation higher, so we don't queue a bitstream
buffer if we don't have a picture buffer to decode into.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
bd7db13412
codecs: h264: Do not ignore end_picture() return value
...
If decoding failed because end_picture() failed, set the picture to
nonexisting, this way output_picture() will be skipped. This avoids confusing
special cases in output_picture() implementation.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
390cbe1f00
v4l2slh264dec: Add output format negotiation
...
This allow negotiating the output format through caps. Some drivers can
pipeline the decoder buffer through an image processor. This only support
colorspace conversion for now.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
6494d7b056
v4l2format: Convert between V4L2 and GST video format
...
This will be needed in the output format negotiation.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
2a1836f183
v4l2codecs: Read driver provided stride
...
This implements driver stride support but only for single allocation buffers.
This code is imported from the original v4l2 plugin and adapted to the new
helper context.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
21652a8e52
v4l2h264dec: Copy frames when GstVideoMeta is not supported
...
In some case, when downstream does not support GstVideoMeta, we need to
normalize the stride and offset of the buffer so that downstream can render
properly with a GstVideoMeta. This code is not called when GstVideoMeta is
supported downstream.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
3c2d25eebf
v4l2codec: Add initial GstVideoMeta support
...
In this patch we strictly set the GstVideoMeta width/height to the coded width
and height. Further patches will add stride support and frame copying when
downstream does not support GstVideoMeta.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
f6690420ce
v4l2slh264dec: Prevent spurious renegotiation
...
Don't let downstream cause a renegotiation at random point in time. This would
lead to spurious renegotiation and the decoder state may not be recoverable.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
b47929a74d
v4l2slh264dec: Hold on picture buffers
...
These buffers should not be reused for decoding until they are no longer
referenced.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
b107c20198
v4l2codecs: Fix bytesused value
...
Pass the actual amount of bytes we have copied into the bitstream buffer. Also
unmap the memory before queuing.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
0d740a184e
v4l2codech264dec: Implement finish frame
...
This enables the request to be processed by the HW (STREAMON) and to be pushed
downstream for further processing.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
3cc6643050
v4l2codecdecoder: Add support for dequeuing buffers
...
This includings polling of the request and streamon/streamoff.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
4305771178
v4l2codech264dec: Implement queuing
...
We now pass the controls, associated to a request, queue the bitstream, qeueue
a picture buffer to decode into and finally queue the request. This now runs
until the buffer pool is exhausted. The next step will be to dequeue.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
a307499437
v4l2decoder: Add helpers to queue buffer and requests
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
db787adfa1
v4l2codec: Add getter for buffer index in allocator and pool
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
527f040bfc
v4l2h264codecdec: Copy bitstream parameter and data
...
In this patch we fill the control structure with the bitstream paramter and
copy the bitstream data into V4L2 memory. Slice paramters are only the subset
of what Hantro needs, without any support for interlaced content.
2020-03-31 09:34:05 -04:00
Nicolas Dufresne
2bac52a6fb
v4l2slh264dec: Use the newly introduced allocator / pool
...
We now allocate and free the memory needed for streaming.
2020-03-31 09:34:05 -04:00