Seungha Yang
50b36ce257
mediafoundation: Use G_BEGIN_DECLS/G_END_DECLS pair everywhere
...
... instead of extern "c" {} block.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1241 >
2020-05-25 15:09:20 +00:00
Seungha Yang
c4cb51c63d
mediafoundation: Add support video capture on UWP app
...
New video capture implementation using WinRT Media APIs for UWP app.
Due to the strict permission policy of UWP, device enumeration and
open should be done via new WinRT APIs and to get permission from users,
it will invoke permission dialog on UI.
Strictly saying, this implementation is not a part of MediaFoundation
but structurally it's very similar to MediaFoundation API.
So we can avoid some code duplication by adding this implementation
into MediaFoundation plugin.
This implementation requires UniversalApiContract version >= 6.0
which is part of Windows 10 version 1803 (Redstone 4)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1241 >
2020-05-25 15:09:20 +00:00
Seungha Yang
e580676747
mfsourceobject: Move device name, path, and index to public struct
...
... so that subclass can access each value and update them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1241 >
2020-05-25 15:09:20 +00:00
Seungha Yang
6ae478946c
mediafoundation: Fix typo in source object impl.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1241 >
2020-05-25 15:09:20 +00:00
Sebastian Dröge
bd67ef18e9
audiobuffersplit: Unset DISCONT flag if not discontinuous
...
And also set/unset the RESYNC flag accordingly.
It can happen that the flag is preserved by GstAdapter from the input
buffer. For example if a big input buffer is split into many small ones,
each of the small ones would have the flag set.
All other buffer flags seem safe to keep here if they were set,
including the GAP flag.
Also ensure that the buffer is actually writable before changing any
flags or metadata on it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1298 >
2020-05-25 12:41:32 +00:00
Seungha Yang
3efc8f5de9
mftransform: Clear unused output IMediaSample
...
If MFT doesn't produce encoded output, need to free allocated
output sample and buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1297 >
2020-05-25 10:25:37 +00:00
Jan Schmidt
3fdf25cc37
tsdemux: Handle old streams claiming to be HDMV with Opus
...
GStreamer 1.16 and earlier produced streams with HDMV registration id
but with Opus audio streams on the stream ID that AC-4 now uses. Make
sure those still play back by special casing the check for AC-4 in HDMV
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1295
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1296 >
2020-05-25 01:51:46 +10:00
Jan Schmidt
918ed75944
srt: Don't leak the connection_poll_id on close()
...
Attempting to reach an inactive SRT peer in caller mode
was leaking an fd every few seconds in the gst_srt_object_close()/open()
loop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1293 >
2020-05-24 10:47:59 +00:00
Seungha Yang
b93fbdd3cd
mfvideoenc: Fix huge memory leak
...
Subclass must unref passed GstVideoCodecFrame on GstVideoEncoder::handle_frame()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1294 >
2020-05-24 19:12:28 +09:00
Thibault Saunier
5a2c358a2b
pitch: Remove useless restriction on number of channel
...
It handles any number of channels just fine
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1292 >
2020-05-22 18:18:28 -04:00
Seungha Yang
2e0a6cc020
h264decoder: Disallow multiple slice group as we don't support FMO
...
Even though it might be supported by accelerator, baseclass is not
ready to support it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1291 >
2020-05-22 19:07:33 +00:00
Seungha Yang
e75049eb84
nvh264sldec: Fix wrong scaling list matrix scan order
...
Quatization matrix of NVDEC should be raster scan order but
h264parser stores it in zig-zag scan order. We need to convert
the matrix.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1290 >
2020-05-23 01:06:28 +09:00
Andrey Sazonov
d806dd2543
asfmux: consistent sscanf args usage
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1286 >
2020-05-21 20:37:49 +00:00
Nicolas Dufresne
d16367f046
v4l2codecs: h264: Add missing break
...
There was a missing break for the 4:4:4 case which would break the sizeimage
calculation. We don't currently have hardware that supports 4:4:4, so this
code wasn't tested. This was detected by Coverity.
CID 1463592 1463591
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1283 >
2020-05-21 20:12:07 +00:00
Andrey Sazonov
9bb508c742
planaraudioadapter: fix possible NULL ptr dereference
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1288 >
2020-05-21 17:12:25 +00:00
Andrey Sazonov
5044967382
sdpdemux: fix klocwork issues
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1287 >
2020-05-21 15:14:32 +00:00
Matthew Waters
8403d97587
amc/videodec: only retrieve the stride/slice-height for raw output
...
When outputting to a surface, these values may not exist.
As found on a Google Pixel 3.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1284 >
2020-05-21 12:40:21 +00:00
Stéphane Cerveau
3f16353d64
meson: add libopenjp2 fallback for openjpeg
...
As a wrap is now available in gst-build, the fallback
can be used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1270 >
2020-05-21 08:36:59 +00:00
Ederson de Souza
a754c67c05
avtp: Add libavtp fallback dependence
...
So that libavtp can be found if added as subproject on gst-build.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1271 >
2020-05-21 00:14:08 +00:00
Seungha Yang
dac36cb98f
mediafoundation: Add device provider implementation
...
Only static device probing is supported for now
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1236 >
2020-05-20 11:06:09 +00:00
Seungha Yang
ba45e3f82b
mfsourceobject: Store selected device path, name and index
...
Update path, name and index with selected device so that checked by
get_property() after constructed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1236 >
2020-05-20 11:06:09 +00:00
Edward Hervey
f3d6026ad2
rtmp2src: Answer scheduling query
...
Just like for rtmpsrc, we must inform downstream that we are a
sequential (i.e. don't do random access efficiently) and
bandwith-limited (i.e. might need buffering downstream) element
Fixes buffering issues with playbin3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1282 >
2020-05-20 10:55:55 +02:00
Nicolas Dufresne
2160239548
v4l2slh264dec: Request large enough bitstream buffer
...
The Cedrus driver would otherwise choose 1KB buffer, which is too small.
This follows what some drivers do, which is simply to use the size a
packed raw image would have. Specifications do not really guaranty any minimum
compression ratio.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Nicolas Dufresne
037730a787
v4l2slh264dec: Add slice based decoder support
...
This adds support for slice based decoder like the Allwinner/Cedrus driver. In
order to keep things efficient, we hold the sink buffer until we reach the end
of the picture. Note that as we don't know which one is last, we lazy queue the
slices. This effectively introduces one slice latency.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Nicolas Dufresne
661f0c161e
v4l2codecdec: Fix error handling
...
If none of the format the HW produce is supported, the fiter will be NULL,
which would lead to assertion when trying to release it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Nicolas Dufresne
26264163de
v4l2decoder: Add legacy non-multiplanar support
...
The Cedrus driver uses the lagacy buffer type (non-mplane). This automatically
detect and use the right v4l2_buf_type. This also affect code using
v4l2_buffer and v4l2_format structures.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Nicolas Dufresne
14b0b68354
v4l2codecs: Update kernel headers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Seungha Yang
24f30b2e6e
d3d11convert: Fix fallback texture setup when resolution is not even number
...
When texture format is semi-planar, resolution should be even number,
and add missing P016 format handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1275 >
2020-05-19 17:25:05 +00:00
Seungha Yang
a966cc20bc
d3d11convert: Fix fallback texture copy
...
Fix texture copy when input texture has non-zero subresource index
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1275 >
2020-05-19 17:25:05 +00:00
Seungha Yang
a24d4e654d
d3d11: Add support for video rescale and rename element to d3d11convert
...
GstD3D11ColorConverter implementation is able to rescale video as well.
By doing colorspace conversion and rescale at once, we can save
one cycle of shader pipeline which will can save GPU resource.
Since this element can support color space conversion and rescale,
it's renamed as d3d11convert
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1275 >
2020-05-19 17:25:05 +00:00
Seungha Yang
0e842c74b6
d3d11: Move scoring util method for colorspace conversion to colorconvert element
...
It's used only by colorconvert element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1275 >
2020-05-19 17:25:05 +00:00
Víctor Manuel Jáquez Leal
206d900573
codecs: h264decoder: chain finalize vmethod
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Nicolas Dufresne
540c287a73
codecparsers: h264: Only set relevant default weight values
...
This is minor optimization to avoid setting values we don't need. It also
makes debugging easier since only relevant values a non-zero now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Nicolas Dufresne
d062677b3f
codecparsers: h264: Fix default ref list size
...
The default in PPS was not applied properly. The default does not apply for
I-Slice and l1 default only applies for B-Slice. This fixes the slice values
for num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Nicolas Dufresne
28e30c8493
codecs: h264decoder: Use calculated values for max_pic_num/frame_num
...
The parser pre-calculate these already, just use them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Víctor Manuel Jáquez Leal
d2aae6bb96
codecs: h264decoder: ref pic lists as decode_slice parameters
...
Pass reference picture lists to decode_slice() vmethods
Change gstv4l2codech264dec and gstnvh264dec accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Víctor Manuel Jáquez Leal
990392d595
codecs: h264decoder: handle reference picture lists
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:08 +00:00
Nicolas Dufresne
7e63d1f5ad
codecs: h264decoder: Port from GList to GArray
...
Using glist requires a lot of small allocation at runtime and also
it comes with a slow sort algorithm. As we play with that for very
frame and slices, use GArray instead. Note that we cache some arrays
in the instance as there is no support for stack allocated arrays
in GArray.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:08 +00:00
Nicolas Dufresne
f8736626a9
codecs: h264decoder: Make get_long_ref_by_pic_num() transfer none
...
We don't use the extra reference, so let's just avoid the extra
ref/unref.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:08 +00:00
Nicolas Dufresne
a20147f255
codecs: h264decoder: Make get_short_ref_by_pic_num() transfer none
...
We don't use the extra reference, so let's just avoid the extra
ref/unref.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:08 +00:00
Stéphane Cerveau
298e22e217
tests: fix nalutils file name
...
The filename was too long causing issues with ccache
Fix https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/97
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1281 >
2020-05-19 15:39:50 +02:00
Jan Alexander Steffens (heftig)
055de3cdff
mpegtsdemux: tests: Add simple tests for tsparse and tsdemux
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1274 >
2020-05-18 14:11:40 +00:00
Jan Alexander Steffens (heftig)
9b2ed3a3fc
mpegtsdemux: Close a buffer leak and simplify input_done
...
tsparse leaked input buffers quite badly:
GST_TRACERS=leaks GST_DEBUG=GST_TRACER:9 gst-launch-1.0 audiotestsrc num-buffers=3 ! avenc_aac ! mpegtsmux ! tsparse ! fakesink
The input_done vfunc was passed the input buffer, which it had to
consume. For this reason, the base class takes a reference on the buffer
if and only if input_done is not NULL.
Before 34af8ed66a
, input_done was used in
tsparse to pass on the input buffer on the "src" pad. That commit
changed the code to packetize for that pad as well and removed the use
of input_done.
Afterwards, 0d2e908523
set input_done
again in order to handle automatic alignment of the output buffers to
the input buffers. However, it ignored the provided buffer and did not
even unref it, causing a leak.
Since no code makes use of the buffer provided with input_done, just
remove the argument in order to simplify things a bit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1274 >
2020-05-18 14:11:40 +00:00
Mats Lindestam
bf004227ec
gstcurlhttpsink: Set 'Expect: 100-continue'-header
...
In the upgrade of libcurl from 7.64.1 to 7.69.1 the
EXPECT_100_THRESHOLD has been increased from 1 Kb to 1 Mb
(see https://curl.haxx.se/mail/lib-2020-01/0050.html ).
This caused the gstcurlhttpsink to not being able to rewind
and resend in the case, e.g. response '401 Unauthorized'.
Now the 'Expect: 100-continue'-header is explicitly set in
the gstcurlhttpsink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1276 >
2020-05-18 13:46:24 +02:00
Arun Raghavan
d0776faf47
opensles: Remove hard-coded buffer-/latency-time values
...
These were originally required in early Android versions, but are no
longer needed.
2020-05-16 19:23:06 +00:00
Seungha Yang
8afc283b51
mediafoundation: Refactor GstMFSourceObject implementation
...
* Move CoInitializeEx/CoUninitialize pair into thread function in order to
ensure MTA COM thread
* Move common code to baseclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1269 >
2020-05-15 09:03:13 +00:00
Seungha Yang
c29c71ae9d
mediafoundation: Remove COM thread constraints from GstMFTransform object
...
Move CoInitializeEx/CoUninitialize pair into our dedicated thread so that
we can ensure COM thread is MTA. This will remove thread constraints
around plugin init.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1269 >
2020-05-15 09:03:13 +00:00
Matthew Waters
b3cbdb1d26
amcvideodec: fix sync meta copying not taking a reference
...
Fixup for
9b9e39be24
: amc: Fix crash when a sync_meta survives its sink
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/603
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1272 >
2020-05-15 13:54:56 +10:00
J. Kim
4ccaa1ebbb
srtobject: add streamid property
...
The stream id starts with '#!::' according to SRT Access Control[1],
but GstURI requires URI encoded string.This commit introduces additional
property to set the id by normal string.
[1] https://github.com/Haivision/srt/blob/master/docs/AccessControl.md
2020-05-13 14:13:48 +00:00
Nirbheek Chauhan
e3d5849225
meson: Pass native: false to add_languages()
...
This is needed for cross-compiling without a build machine compiler
available. The option was added in 0.54, but we only need this in
Cerbero and it doesn't affect older versions so it should be ok.
Will only cause a spurious warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1266 >
2020-05-13 13:59:36 +05:30