Seungha Yang
9a796482dc
d3d11decoder: Allow 10bits only profiles
...
HEVC_VLD_Main10 and VP9_VLD_10bit_Profile2 might not support
8bit format (i.e., NV12) depending on GPU vendor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1742 >
2020-10-31 00:37:48 +09:00
Sebastian Dröge
f71493a57c
decklink: Remove \n from debug output
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 16:23:31 +02:00
Sebastian Dröge
60b7bd23a8
decklink: Correctly indent everything
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 16:23:31 +02:00
Sebastian Dröge
56b2130300
decklink: Add a default profile id
...
This causes no changes to the profile but keeps the existing settings.
The profile can also be changed from e.g. the card's configuration
application and in that case probably should be left alone.
The default is the new value as it keeps the profile setting as it is,
which is consistent with the previous behaviour in 1.18.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 16:23:31 +02:00
Sebastian Dröge
d1df412d70
decklink: Mark internal function as static
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 13:47:51 +00:00
Sebastian Dröge
1ea2796cfc
decklink: Remove some dead code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 13:47:51 +00:00
Sebastian Dröge
c6aca271a1
decklink: Update enum value bounds check in gst_decklink_get_mode()
...
The widescreen modes moved after GST_DECKLINK_MODE_2160p60 and using
them now would cause an assertion. This is a regression from
309f6187fe
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1737 >
2020-10-30 10:02:32 +02:00
Chris Bass
d25be0d16e
ttmlparse: Handle whitespace before XML declaration
...
When ttmlparse is in, e.g., an MPEG-DASH pipeline, there may be
whitespace between successive TTML documents in ttmlparse's accumulated
input. As libxml2 will fail to parse documents that have whitespace
before the opening XML declaration, ensure that any preceding whitespace
is not passed to libxml2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1539 >
2020-10-30 07:01:52 +00:00
Chris Bass
8df2314c23
ttmlparse: Ensure only single TTML doc parsed
...
The parser handles only one TTML file at a time, therefore if there are
multiple TTML documets in the input, parse only the first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1539 >
2020-10-30 07:01:52 +00:00
Xavier Claessens
dd7b672830
amc: Fix crash when encoding AVC
...
gstamcvideoenc.c calls gst_amc_avc_profile_to_string() with alternatives
set to NULL which causes a crash.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1732 >
2020-10-29 17:51:57 +00:00
Guillaume Desmottes
bfb9071081
isac: add iSAC plugin
...
Wrapper on the iSAC reference encoder and decoder from webrtc,
see https://en.wikipedia.org/wiki/Internet_Speech_Audio_Codec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1124 >
2020-10-29 16:59:18 +01:00
Thibault Saunier
d1945de102
transcodebin: Create the decodebin in _init
...
This way user can request pads right from the beginning
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00:00
Philippe Normand
88c96789bf
transcodebin: Accept more than one stream
...
Look-up the stream matching the given ID also after building the stream list
from the received collection. Without this change the transcoder would discard
the second incoming stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00:00
Thibault Saunier
b254c0d5fe
transcodebin: Port to decodebin3
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00:00
Thibault Saunier
a5fd2a4bc3
uritranscodebin: Move to using a urisourcebin for our source.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00:00
Thibault Saunier
7d1f5e951f
transcoder: Base sync transcoding variant on a GMainLoop
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00:00
Randy Li
6d8133e41e
waylandsink: release frame callback when destroyed
...
We would use a frame callback from the surface to indicate
that last buffer is rendered, but when we destroy the surface
and that callback is not back yet, it may cause the wayland event
queue crash.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1729 >
2020-10-29 12:09:01 +00:00
Seungha Yang
639fb6ac15
rtmp2src: Set buffer timestamp on output buffer
...
This timestamp information would be useful for queue2 element
when calculating time level and also it makes buffering decision
more reliable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1727 >
2020-10-28 16:32:32 +00:00
Seungha Yang
b62867ecc8
d3d11videoprocessor: Fix wrong input/output supportability check
...
The flag argument of ID3D11VideoProcessorEnumerator::CheckVideoProcessorFormat
method is output value, not input.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1726 >
2020-10-28 15:53:54 +00:00
Seungha Yang
8f96361c81
nvcodec: nvsldec: Add support for CUDA memory
...
Add CUDA memory support. Note that zero copying is not supported yet
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1720 >
2020-10-27 18:31:42 +00:00
Seungha Yang
fab234f2f1
d3d11memory: Adjust log level for some spammy debug messages
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723 >
2020-10-27 16:20:49 +00:00
Seungha Yang
10f622aa5d
d3d11convert: Use ID3D11VideoProcessor only if device supports colorspace
...
Check whether conversion with given combination of input/output
format and dxgi colorspace is supported or not by driver.
If not, we should use shader.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723 >
2020-10-27 16:20:49 +00:00
Seungha Yang
6b992f291b
d3d11videoprocessor: Add a method for device's conversion caps check
...
Add a wrapper method for
ID3D11VideoProcessorEnumerator1::CheckVideoProcessorFormatConversion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723 >
2020-10-27 16:20:49 +00:00
Seungha Yang
1e038ce322
d3d11format: Map more colorimetry with dxgi colorspace
...
Map more logically identical set of GstVideoColorimetry formats
with dxgi color space.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723 >
2020-10-27 16:20:49 +00:00
He Junyan
d76204d14f
va: pool: Set the video_alignment after we get image info.
...
The set_format() of the allocator may change the stride of the
alloc_info. We should update the video_align.stride_align based
on it. Or, we get a warning in gst_video_meta_validate_alignment().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698 >
2020-10-27 14:18:07 +00:00
He Junyan
caf28d8f12
va: h264dec: Set the padding to VideoAlignment's right.
...
In our va implemenation, we just use image's info to map the buffer.
The padding info just plays a role as a place holder to expand the
allocation size in caps when decoding size is bigger than display
size. So the padding_right or padding_left does not change the result.
But we find if using padding_left, it is hard to meet the requirement
of gst_video_meta_validate_alignment(), when the video meta's stride
is different from the allocation width.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698 >
2020-10-27 14:18:07 +00:00
He Junyan
6e72f45a8f
va: basedec: No need to call base class' decide_allocation().
...
We have already done the jobs in gst_va_base_dec_decide_allocation()
and no need to call base class' decide_allocation() again. The base
class' decide_allocation() will set_format() again and let use do the
image/surface testing again, which is low performance and no needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698 >
2020-10-27 14:18:07 +00:00
He Junyan
32133c85d3
va: allocator: use _update_image_info() to set allocator parameters.
...
Use this standalone function to update the allocator info and make
all ensure_image() and mem_alloc() API clean.
We also change the default way of using image. We now set the non
derive manner as the default manner, and if it fails, then fallback
to the derived image manner.
On a lot of platforms, the derived image does not have caches, so the
read and write operations have very low performance.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698 >
2020-10-27 14:18:07 +00:00
He Junyan
e577ca140f
va: allocator: Add a helper function to update the image info.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698 >
2020-10-27 14:18:06 +00:00
He Junyan
16ff523575
va: allocator: Decide the allocator's parameters when set_format().
...
Moving the parameters testing and setting from the allocator_alloc_full()
to the allocator_try(). The allocator_alloc_full() will be called every
time when we need to allocate a new memory. But all these parameters such
as the surface and the image format, rt_format, etc, are unchanged during
the whole allocator lifetime. Just setting them in set_format() is enough.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698 >
2020-10-27 14:18:06 +00:00
Nicola Murino
77f28ee3e7
opencv: allow compilation against 4.5.x
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1709 >
2020-10-27 10:53:27 +00:00
Aaron Boxer
b2a0fd9e96
jpeg2000parse: sub-sampling parse should take component into account
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1653 >
2020-10-27 08:26:23 +01:00
Stéphane Cerveau
7edff6e746
jpeg2000parse: no pts interpolation with subframe.
...
The jpeg2000parser must not interpolate PTS with subframes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1653 >
2020-10-27 08:26:23 +01:00
Aaron Boxer
db13dc9d02
jpeg2000parse: support frame and stripe alignment in caps
...
forward alignment and num-stripes caps properties
Use caps height when setting caps for subframe
We want downstream to use full frame height, not subframe height
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1653 >
2020-10-27 08:26:23 +01:00
Sebastian Dröge
8a923af42f
decklink: Reset skip counters when starting the sources
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378 >
2020-10-25 11:46:29 +02:00
Vivia Nikolaidou
675d8b347b
decklink*src: Post a warning message on the bus about dropped frames
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378 >
2020-10-25 11:39:09 +02:00
Georg Lippitsch
a45b0c8f1a
decklink*src: Aggregate dropped frame/packet logging
...
decklink*src currently prints a log entry for every dropped frame and
audio packet. That completely spams the logs.
This change aggregates information about dropped packets and only prints
a message once when dropping starts, and a summary when dropping ends.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/705
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378 >
2020-10-25 11:39:05 +02:00
Seungha Yang
9d810bbd81
d3d11memory: Protect view object with lock
...
Make resource allocation more thread-safe
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1718 >
2020-10-25 00:38:52 +09:00
Seungha Yang
969ab3e664
d3d11convert: Add support for conversion using ID3D11VideoProcessor
...
Output texture of d3d11 decoder cannot have the bind flag
D3D11_BIND_SHADER_RESOURCE (meaning that it cannot be used for shader
input resource). So d3d11convert (and it's subclasses) was copying
texture into another internal texture to use d3d11 shader.
It's obviously overhead and we can avoid texture copy for
colorspace conversion or resizing via ID3D11VideoProcessor
as it supports decoder output texture.
This commit would be a visible optimization for d3d11 decoder with
d3d11compositor use case because we can avoid texture copy per frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1718 >
2020-10-25 00:38:44 +09:00
Seungha Yang
484d510558
d3d11memory: Store ID3D11VideoProcessorOutputView object
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1718 >
2020-10-25 00:38:39 +09:00
He Junyan
002cddf131
codecs: h265decoder: Fix picture leaks because of reference set.
...
The last frame's reference set has no one to cleanup. We need to
clean all pictures in the stop() func.
We also add a helper function to cleanup all the pictures in the
reference picture set.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1717 >
2020-10-23 16:21:15 +00:00
He Junyan
4d296a07e4
codecs: h265decoder: Fix 3 ref array leaks in finalize.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1717 >
2020-10-23 16:21:15 +00:00
Seungha Yang
35ed7c7811
d3d11window: Reuse ID3D11VideoProcessorInputView if possible
...
GstMemory object could be disposed if GstBuffer is not allocated
by GstD3D11BufferPool such as via gst_buffer_copy() and/or
gst_buffer_make_writable(). So attaching qdata on GstMemory
object would cause unnecessary view alloc/free.
By using view pool which is implemented in GstD3D11Allocator,
we can avoid redundant view alloc/free.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1716 >
2020-10-23 15:44:10 +00:00
Seungha Yang
6c09cdd32b
d3d11memory: Implement ID3D11VideoProcessorInputView pool
...
Similar to ID3D11VideoDecoderOutputView pool implementation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1716 >
2020-10-23 15:44:10 +00:00
Xavier Claessens
2efb4a7adb
Meson: Use pkg-config generator
2020-10-23 11:14:18 -04:00
Nicolas Dufresne
f22fc190e7
h265decoder: Add support for l0/l1
...
Add support for reference list needed for VA-API and some V4L2 decoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1713 >
2020-10-21 09:05:57 -04:00
Nicolas Dufresne
f330b5ae62
h265decoder: Sync with the H264 implementation
...
This ensures that we get the last reference to picture being outputed,
avoiding GstBuffer structure copies and simplifying the buffer management.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1713 >
2020-10-21 09:05:57 -04:00
Seungha Yang
f615677051
d3d11decoder: Directly access ID3D11VideoDecoderOutputView for decoding
...
Decoder output view is stored in GstD3D11Memory object instead of
wrapper struct now. So qdata is no more required.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1712 >
2020-10-20 17:56:57 +09:00
Seungha Yang
a4f324d668
d3d11memory: Implement ID3D11VideoDecoderOutputView pool
...
Similar to texture-array pool, we can reuse decoder output view
since the life time of output view is identical to that of texture-array.
In this way, we can avoid frequent output view alloc/free.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1712 >
2020-10-20 17:56:52 +09:00
Seungha Yang
04376397eb
d3d11memory: Move to GArray to store texture-array status
...
The size D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION is 2048
which is too large in practice especially for a texture
of dpb
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1712 >
2020-10-20 01:14:27 +09:00