Julien Isorce [Fri, 6 Dec 2019 05:19:13 +0000 (21:19 -0800)]
msdkvpp: check mfx surface nullity for the input buffer
In theory it should not happen but it happened to me
in some cases where it failed to allocate some video
buffers so this was a consequence of a corner case.
Better to be safe than sorry.
Seungha Yang [Sun, 8 Dec 2019 07:39:16 +0000 (16:39 +0900)]
d3d11window: Clear old swapchain per prepare
_prepare() might be called multiple times for given window, so clear
old swapchain if any.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1138
Olivier Crête [Mon, 9 Dec 2019 20:35:03 +0000 (15:35 -0500)]
srtp: Remove %z as it doesn't work on Windows
Alicia Boya García [Mon, 9 Dec 2019 16:54:02 +0000 (17:54 +0100)]
gsttestsrcbin: Avoid not-linked errors when switching tracks
The previous implementation had a very high reproducibility race where
if after a track switch, the ex-active track pad completed a buffer
chain (now returning not-linked) the flow combiner had all their pads in
non-linked state, propagating it as an error and stopping the pipeline.
By resetting the flow combiner in response to RECONFIGURE events that
race is made impossible.
Julien Isorce [Fri, 6 Dec 2019 16:50:05 +0000 (08:50 -0800)]
msdkdec: fix assertion 'frame->ref_count > 0' failed
Can happen if the oldest frame is the current frame
and if gst_video_decoder_finish_frame failed in which
case the current is unref and then drop instead of
just drop.
This patch also removes some assumptions, it was strange
to call unref and finish_frame in gst_msdkdec_finish_task.
In principle when owning a frame, the code should either
unref, or drop or finish.
Seungha Yang [Sun, 8 Dec 2019 08:25:26 +0000 (17:25 +0900)]
d3d11window: Always set dxgi colorspace if possible
Not only for the 10 bits RGB case with HDR metadata, set proper color space
to swapchain in order to make color representaion correct
Matthew Waters [Tue, 3 Sep 2019 03:56:22 +0000 (13:56 +1000)]
vtdec: add support for outputing vulkan images
Matthew Waters [Tue, 3 Sep 2019 03:42:43 +0000 (13:42 +1000)]
vulkan/image: expose initialization function for subclasses
Matthew Waters [Mon, 2 Sep 2019 14:30:31 +0000 (00:30 +1000)]
vulkan/macos: link directly to MoltenVK
It's currently the only sane way we can use MoltenVK functions to
integrate with Metal API.
It also removes the need to specify the VK_ICD_FILENAMES environment
variable pointing to MoltenVK_icd.json.
Matthew Waters [Mon, 2 Sep 2019 05:00:27 +0000 (15:00 +1000)]
applemedia: rename IOSurfaceMemory -> IOSurfaceGLMemory
Matthew Waters [Wed, 28 Aug 2019 08:59:35 +0000 (18:59 +1000)]
videotexturecache: implement GL specifics as a subclass
Matthew Waters [Mon, 26 Aug 2019 06:51:03 +0000 (16:51 +1000)]
applemedia/videocache: make a GObject subclass
Matthew Waters [Wed, 28 Aug 2019 10:09:39 +0000 (20:09 +1000)]
avfvideosrc: don't leak texture caches
If decide_allocation is called multiple times, then we would continually
overwrite the previous cache without freeing
Aaron Boxer [Fri, 6 Dec 2019 04:06:41 +0000 (22:06 -0600)]
d3d11: translate windows error codes to human readable strings
This will help with debugging.
Xavier Claessens [Mon, 16 Sep 2019 17:15:59 +0000 (13:15 -0400)]
mlaudiosink: Fix crash when stopping pipeline
This is a bug in LuminOS 0.97.0.
Xavier Claessens [Tue, 9 Apr 2019 19:22:19 +0000 (15:22 -0400)]
Add mlaudiosink element
Stéphane Cerveau [Thu, 5 Sep 2019 14:48:19 +0000 (16:48 +0200)]
openh264enc: keep the headers
be able to resend the headers on demand after a key-unit request
Sebastian Dröge [Thu, 5 Dec 2019 19:22:18 +0000 (21:22 +0200)]
decklink: Return new references to the devices from get_devices()
Otherwise the caller will free the devices we store internally.
Stéphane Cerveau [Fri, 24 May 2019 14:24:00 +0000 (16:24 +0200)]
dash: move parser nodes/types to separated files
Rename GstMpdClient to GstMPDClient and use GObject model.
Move nodes to file from gstmpdparser.c:
- GstMPDRootNode
- GstMPDBaseURLNode
- GstMPDUTCTimingNode
- GstMPDMetricsNode
- GstMPDMetricsRangeNode
- GstMPDSNode
- GstMPDSegmentTimelineNode
- GstSegmentTemplateNode
- GstMPDSegmentURLNode
- GstMPDSegmentListNode
- GstMPDPeriodNode
- GstMPDRepresentationNode
- GstMPDsubRepresentationNode
- GstMPDAdaptationSetNode
- GstMPDContentComponentNode
- GstMPDSubsetNode
- GstMPDProgramInformationNode
Move types to gstmpdhelper from gstmpdparser.c:
- GstURLType
- GstDescriptorType
- GstSegmentBaseType
- GstMPDMultSegmentBaseType
- GstMPDRepresentationBaseType
Cleanup naming when possible.
Stéphane Cerveau [Mon, 20 May 2019 16:48:23 +0000 (18:48 +0200)]
dash: split mpdparser, mpdclient and xmlhelper
provide a separate namespace for mpd helper
for xml parsing and the real mpd parsing.
Seungha Yang [Wed, 4 Dec 2019 06:33:42 +0000 (15:33 +0900)]
d3dvideosink: Fix warning for unhandled enum in switch
d3dhelpers.c:135:3: warning: enumeration value 'D3DFMT_D32_LOCKABLE' not handled in switch [-Wswitch]
Matthew Waters [Wed, 4 Dec 2019 08:29:38 +0000 (19:29 +1100)]
vulkanviewconvert: clear the cached uniforms on caps change
Caps changes can change the output/input layout which needs to be
reflected in the input uniforms to the shader.
Seungha Yang [Wed, 4 Dec 2019 15:53:40 +0000 (00:53 +0900)]
d3d11: Initialize debug categories of non-GstElement implementation in plugin init
That's the way to expose debug category to --gst-debug-help
Seungha Yang [Wed, 4 Dec 2019 14:23:09 +0000 (23:23 +0900)]
d3d11window: Invoke resize task with high priority
On resize event, swapchain should be configured with higher priority
than the other tasks since it's directly related to visual artifacts.
Seungha Yang [Wed, 4 Dec 2019 14:20:39 +0000 (23:20 +0900)]
d3d11device: Add gst_d3d11_device_thread_add_full method
I would be used to invoke GPU task with specified priority.
Seungha Yang [Wed, 4 Dec 2019 05:15:19 +0000 (14:15 +0900)]
d3d11videosinkbin: Drop d3d11 color convert element
d3d11videosink can convert color space now, so the conversion element
seems to be redundant.
Seungha Yang [Tue, 3 Dec 2019 13:54:26 +0000 (22:54 +0900)]
d3d11videosink: Add color conversion support
Draw to back buffer texture directly. It would reduce the number of
copy at least once when color conversion is required.
Seungha Yang [Tue, 3 Dec 2019 13:29:27 +0000 (22:29 +0900)]
d3d11converter: Skip setup converter if input and output formats are equal
Seungha Yang [Tue, 3 Dec 2019 11:35:06 +0000 (20:35 +0900)]
d3d11colorconvert: Split color space converter to reuse code
Seungha Yang [Mon, 2 Dec 2019 11:24:05 +0000 (20:24 +0900)]
d3d11: Split shader to reuse code
Seungha Yang [Mon, 2 Dec 2019 14:27:42 +0000 (23:27 +0900)]
d3d11videosink: Draw window with cached texture on resize
This would render nicer than presenting scene with broken aspect ratio,
especially in case of low framerate.
Seungha Yang [Sat, 30 Nov 2019 11:26:26 +0000 (20:26 +0900)]
d3d11: Add support for D3D11_USAGE_DYNAMIC
D3D11 dynamic texture is a special memory type, which is mainly used for
frequent CPU write access to the texture. For now, this texture type
does not support gst_memory_{map,unmap}
Seungha Yang [Mon, 2 Dec 2019 05:23:10 +0000 (14:23 +0900)]
d3d11device: Add debug message for CreateTexture2D failure
Seungha Yang [Mon, 2 Dec 2019 05:03:04 +0000 (14:03 +0900)]
d3d11device: Fix misreading debug message
Seungha Yang [Sun, 1 Dec 2019 07:13:38 +0000 (16:13 +0900)]
d3d11colorconvert: Disable color conversion with software rasterizer
It's much slower than our CPU based color-converter in most case.
Seungha Yang [Thu, 18 Jul 2019 14:12:13 +0000 (23:12 +0900)]
d3d11videosink: Handle context query
Propagate d3d11device via context query.
Seungha Yang [Sun, 6 Oct 2019 12:59:54 +0000 (21:59 +0900)]
d3d11colorconvert: Avoid copy in/out texture if possible
When input and/or output d3d11memory has its own view, use them for
rendering to avoid texture copy
Seungha Yang [Sun, 6 Oct 2019 12:35:48 +0000 (21:35 +0900)]
d3d11memory: Allocate texture with required views
Store required resource views with d3d11 texture when it requested.
Seungha Yang [Wed, 6 Nov 2019 10:39:09 +0000 (19:39 +0900)]
d3d11: Add d3d11videosinkbin element
New wrapper element to support d3d11 memory upload, color conversion, and
rendering at once.
Seungha Yang [Sun, 18 Aug 2019 12:01:55 +0000 (21:01 +0900)]
d3d11: Add color space conversion element using shader
Add d3d11colorconvert element for color space conversion.
Currently {RGB, YUV} to RGB conversion is supported.
Seungha Yang [Sun, 6 Oct 2019 11:59:51 +0000 (20:59 +0900)]
d3d11memory: Register mininal compare function for GstD3D11AllocationParams
The d3d11 allocation param is stored in GstStructure so it should
provide compare function for later use such as gst_structure_is_equal()
Seungha Yang [Thu, 3 Oct 2019 12:24:07 +0000 (21:24 +0900)]
d3d11window: Set render target whenever drawing
Device context's render target might be updated for offscreen rendering
Seungha Yang [Sat, 24 Aug 2019 08:43:43 +0000 (17:43 +0900)]
d3d11videosink: Specify d3d11 memory caps feature on sinkpad template
Seungha Yang [Wed, 6 Nov 2019 10:38:31 +0000 (19:38 +0900)]
d3d11: Introduce d3d11 upload/download element
That's equivalent to glupload and gldownload elements but for d3d11
Seungha Yang [Wed, 6 Nov 2019 10:37:33 +0000 (19:37 +0900)]
d3d11: Refactor d3d11 memory and dxgi format usage
* Create staging texture only when the CPU access is requested.
Note that we should avoid the CPU access to d3d11 memory as mush as possible.
Incoming d3d11upload and d3d11download will take this GPU memory upload/download.
* Upload/Download texture memory from/to staging only if it needed, similar to
GstGL PBO implementation.
* Define more dxgi formats for future usage (e.g., color conversion, dxva2 decoder).
Because I420_* formats are not supported formats by dxgi, each plane should
be handled likewise GstGL separately, but NV12/P10 formats might be supported ones.
So we decide the number of d3d11memory per GstBuffer for video memory depending on
OS version and dxgi format. For instance, if NV12 is supported by OS,
only one d3d11memory with DXGI_FORMAT_NV12 texture can be allocated by this commit.
One use case of such texture is DXVA. In case DXVA decoder, it might need to produce decoded data
to one DXGI_FORMAT_NV12 instead of seperate Y and UV planes.
Such behavior will be controlled via configuration of GstD3D11BufferPool and
default configuration is separate resources per plane.
Seungha Yang [Sat, 24 Aug 2019 08:14:09 +0000 (17:14 +0900)]
d3d11: Add method for querying d3d11 memory type
... and fix misreading "private" annotation.
Seungha Yang [Wed, 25 Sep 2019 11:34:10 +0000 (20:34 +0900)]
d3d11device: Store selected d3d feature level
Depending on selected feature level, d3d11 API usage can be different.
Instead of querying the selected feature level by user whenever required,
store it once by d3d11device.
Seungha Yang [Fri, 23 Aug 2019 12:41:39 +0000 (21:41 +0900)]
d3d11: Don't share d3d11 device context unconditionally without checking adapter
Do not accept any GstD3D11Device context which has different adapter
index from the required one. For example, if a d3d11 element is expecting
d3d11 device with adapter 1 (i.e., the second GPU), any d3d11 device
context having different adapter could not be shared with
the d3d11 element.
Seungha Yang [Tue, 24 Sep 2019 11:32:47 +0000 (20:32 +0900)]
d3d11device: Don't allow auto adapter selection
Change to d3d11device to be created with explicit target adapter index,
and expose some readonly device properties
Seungha Yang [Sun, 18 Aug 2019 11:56:06 +0000 (20:56 +0900)]
d3d11: Rename native handle getter and context utils functions
Make them consistent with cuda context utils functions.
Put in-only parameter before all in-out parameters, and add _handle()
suffix to native handle getter functions.
Aaron Boxer [Mon, 2 Dec 2019 17:13:11 +0000 (11:13 -0600)]
d3dvideosink: use parent buffer pool to release buffers
In certain cases, the sink's buffer pool will not call the parent's
release_buffer method, so the pool does not clean up properly
after the buffer is released.
Matthew Waters [Fri, 29 Nov 2019 02:45:42 +0000 (13:45 +1100)]
vulkan: move fullscreenquad object to library
It's useful and extensible enough to be used by us and other elements
Matthew Waters [Fri, 29 Nov 2019 00:05:50 +0000 (11:05 +1100)]
vulkan: fix up some gir annotations
Sebastian Dröge [Tue, 3 Dec 2019 13:45:26 +0000 (15:45 +0200)]
interlace: Store unsigned integers in unsigned integer types
And add some assertions to guard against overflows and out of bounds
reads.
Sebastian Dröge [Tue, 3 Dec 2019 13:35:57 +0000 (15:35 +0200)]
interlace: Increment phase_index before checking if we're at the end of the phase
Incrementing it afterwards will always have to phase_index >= 1 and we
will never be at the beginning (0) of the phase again, and thus never
reset timestamp tracking accordingly.
This was broken in
bea13ef43b719aad96e28766cd4d23652a891a20 in 2010, and
causes interlace to run into integer overflows after 2^31 frames or
about 5 hours at 29.97fps. Due to usage of wrong types for the integers
this then causes negative numbers to be used in calculations and all
calculations spectacularly fail, leading to all following buffers to
have the timestamp of the first buffer minus one nanosecond.
Jan Alexander Steffens (heftig) [Wed, 27 Nov 2019 14:38:50 +0000 (15:38 +0100)]
rtmp2sink: Only apply @setDataFrame to onMetaData messages
Only the metadata needs to be made "sticky". Custom data messages should
be passed on unmodified.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/878
Jan Alexander Steffens (heftig) [Wed, 27 Nov 2019 14:38:39 +0000 (15:38 +0100)]
rtmp2: Add gst_rtmp_message_is_metadata
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/878
Jan Alexander Steffens (heftig) [Wed, 27 Nov 2019 14:38:20 +0000 (15:38 +0100)]
rtmp2: Add gst_rtmp_connection_set_data_frame
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/878
Jan Alexander Steffens (heftig) [Wed, 27 Nov 2019 14:37:45 +0000 (15:37 +0100)]
rtmp2: Add single-value AMF0 parsing and serializing
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/878
Jan Alexander Steffens (heftig) [Wed, 27 Nov 2019 14:36:07 +0000 (15:36 +0100)]
rtmp2: Minor changes
- Remove an unneeded initialization to zero from AmfParser
- Add missing initialization to gst_amf_serialize_command_valist
- Add a g_return_if_fail to gst_rtmp_connection_request_window_size
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/878
Matthew Waters [Tue, 3 Dec 2019 03:19:05 +0000 (14:19 +1100)]
build: use -fvisibility=hidden for objc code
Matthew Waters [Tue, 3 Dec 2019 03:18:49 +0000 (14:18 +1100)]
vulkan: priviatise _invoke_on_main()
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1132
Sebastian Dröge [Thu, 21 Nov 2019 14:59:29 +0000 (16:59 +0200)]
decklink: Add simple device provider for Decklink devices
Nirbheek Chauhan [Sun, 1 Dec 2019 11:34:05 +0000 (17:04 +0530)]
openexr: Fix check for when to pass -std=c++98
commit
6adfb120ab0e1bb0b3439ad725a362cfe4fbe733 added this flag to fix
builds with `-Werror`, and afterwards it was changed to use a version
check when newer versions of openexr moved over to C++11.
However, some distros have backported patches to older openexr
versions which make it require C++11, which makes the version check
incorrect and causes an error because we passed `-Werror -std=c++98`.
Instead, directly check when usage of the header requires `-std=c++98`
with `-Werror` and override the `cpp_std` setting on the target.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1117
o0Ignition0o [Sat, 30 Nov 2019 13:08:06 +0000 (14:08 +0100)]
avfvideosrc: Explicitly request device video permissions for macOS 10.14+
Since macOS Mojave (10.14), video permissions have to be explicitly
granted by a user in order to open a video device such as a camera.
This commit adds a check for the current permission status, and tries
to request for permission if applicable.
Matthew Waters [Tue, 26 Nov 2019 13:25:16 +0000 (00:25 +1100)]
vulkan: implement caching and reuse of a couple of vulkan resources
Includes a new GstVulkanHandlePool base class for pooling different
resources togther. The descriptor cache object is ported to
GstVulkanHandlePool with the exact same functionality.
A new GstVulkanFenceCache is also implemented for caching fences
which is used internally by GstVulkanDevice for creating or reusing
fences.
The existing GstVulkanTrashFenceList object now caches trash objects.
Matthew Waters [Tue, 26 Nov 2019 07:29:14 +0000 (18:29 +1100)]
vulkan/trash: remove free functions covered by GstVulkanHandle
Matthew Waters [Tue, 26 Nov 2019 07:27:04 +0000 (18:27 +1100)]
vulkancolorconvert: disable YUY2 conversion
It doesn't work and never seemed to
Matthew Waters [Tue, 26 Nov 2019 07:11:25 +0000 (18:11 +1100)]
vulkan: split vkfullscreenrender into two
Part 1 is a base class (vkvideofilter) that handles instance, device,
queue retrieval and holding that has been moved to the library
Part 2 is a fullscreenrenderquad that is still in the plugin that
performs all of the previous vulkan-specific functionality.
Matthew Waters [Tue, 26 Nov 2019 05:26:41 +0000 (16:26 +1100)]
vulkan/upload: allocate from the correct pool
Only relevant when upstream does not use our provided pool.
Matthew Waters [Tue, 26 Nov 2019 05:25:43 +0000 (16:25 +1100)]
vulkan/handle: add some handle types
Matthew Waters [Mon, 18 Nov 2019 09:29:10 +0000 (20:29 +1100)]
vulkan/image: don't rely on weak-ref notifies for views
Weak refs don't quite work here correctly as there is always a race with
taking the lock between find_view() and remove_view(). If find_view()
returns a view that is going to removed by remove_view() then we have an
interesting situation.
In theory, the number and type of views for an image are relatively
constant and should not change one they've been set up which means that
it is actually practical to perform pool-like reference counting here
where the image holds a pool of different views that it can give out
as necessary.
Matthew Waters [Mon, 18 Nov 2019 04:20:18 +0000 (15:20 +1100)]
vulkan: add a couple of missing fence unrefs
Matthew Waters [Fri, 4 Oct 2019 06:05:05 +0000 (16:05 +1000)]
vulkan/colorconvert: zero out sampler create struct
Nirbheek Chauhan [Tue, 26 Nov 2019 06:09:32 +0000 (11:39 +0530)]
wasapisrc: Correctly handle BUFFERFLAGS_SILENT
We need to ignore the data we get from WASAPI in this case and write
out silence (zeroes).
Initially reported at https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/808
Nirbheek Chauhan [Mon, 25 Nov 2019 15:55:43 +0000 (21:25 +0530)]
wasapisrc: Try harder to avoid debug output in the hot loop
The whole `src_read()` function is a hot loop since the ringbuffer
thread is waiting on us, and printing to the console from inside it
can easily cause us to miss our deadline.
F.ex., if you had GST_DEBUG=3 and we accidentally missed a device
period, we'd trigger the "reported glitch" warning, which would cause
us to miss another device period, and so on. Let's reduce the log
level so that GST_DEBUG=3 is more usable, and only print buffer flag
info when it's actually relevant.
Nirbheek Chauhan [Mon, 25 Nov 2019 15:49:59 +0000 (21:19 +0530)]
wasapisrc: Fix capturing from some buggy audio drivers
Some audio drivers return varying amounts of data per ::GetBuffer
call, instead of following the device period that they've told us
about in `src_prepare()`.
Previously, we would just drop those extra buffers hoping that the
extra buffers were temporary (f.ex., a startup 'burst' of audio data).
However, it seems that some audio drivers, particularly on older
Windows versions (such as Windows 10 1703 and older) consistently
return varying amounts of data.
Use GstAdapter to smooth that out, and hope that the audio driver is
locally varying but globally periodic.
Initially reported in https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/808
Nirbheek Chauhan [Mon, 25 Nov 2019 15:46:05 +0000 (21:16 +0530)]
wasapisrc: Clarify that nBlockAlign is actually bpf
bpf = bytes per frame.
Nirbheek Chauhan [Mon, 25 Nov 2019 15:30:14 +0000 (21:00 +0530)]
wasapisrc: Fix glitching and clock skew issues
We were miscalculating the device period, i.e. the number of frames
we'll get from WASAPI in each IAudioClient::GetBuffer call, due to
a calculation mistake (truncate instead of round).
For example, on my machine when the aux input is set to 44.1KHz, the
reported device period is 101587, which comes out to 447.998 frames
per ::GetBuffer call. In reality we will, of course, get 448 frames
per call, but we were truncating, so we expected 447 and were
discarding one frame every time. This led to glitching, and skew over
time.
Interestingly, I can only see this with 44.1Khz. 48Khz/96Khz are fine,
because the device period is a more 'even' number.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/806
Edward Hervey [Wed, 27 Nov 2019 14:41:26 +0000 (15:41 +0100)]
atscmux: Add missing break in switch
CID: 1455515
Seungha Yang [Wed, 27 Nov 2019 03:24:46 +0000 (12:24 +0900)]
msdk: Fix mixed declarations warning
msdk.c:194:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
Aaron Boxer [Tue, 26 Nov 2019 18:05:38 +0000 (13:05 -0500)]
h264parse: buffer mismatch in map/unmap
Julien Isorce [Tue, 19 Nov 2019 23:35:20 +0000 (15:35 -0800)]
msdkdec: log an error if leaking surfaces in finalize
The for loop in gst_msdkdec_handle_frame is error prone
about how it manages surfaces. Because sometimes it sets
the surface variable to NULL and sometimes it needs to free
it right away. So better to print an error if surfaces are
leaked to help with any change around the loop.
Jeffy Chen [Mon, 25 Nov 2019 11:08:48 +0000 (19:08 +0800)]
waylandsink: Commit the parent after creating subsurface
We should commit the parent to activate new subsurface, this is
documented in the protocol.
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Seungha Yang [Fri, 20 Jul 2018 12:33:24 +0000 (21:33 +0900)]
ttmlparse: Collect buffers until detecting complete xml document
Given buffer could be fragmented and we might need to
collect buffers until end tag is detected. And/or, a buffer
can consist of multiple ttml documents.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/494
Aaron Boxer [Wed, 20 Nov 2019 19:19:02 +0000 (13:19 -0600)]
msdk: query hardware when checking MFX availability
msdk plugin is not used for sofware encode/decode as there are better
solutions available. Also, with MFX_IMPL_AUTO_ANY, if software decode
is not supported, the plugin will still load, but will then fail when trying to
run the (autoplugged) pipeline. With MFX_IMPL_HARDWARE_ANY,
the plugin fails and a better software decoder is auto-plugged.
Aaron Boxer [Wed, 20 Nov 2019 19:09:34 +0000 (13:09 -0600)]
msdk: query platform when opening session
Seungha Yang [Thu, 14 Nov 2019 10:00:51 +0000 (19:00 +0900)]
nvenc: Fix crash when nvenc was reused then freed without encoding
GstNvBaseEnc::n_bufs was set from the previous encoding session
but it wasn't cleared after stop. That might result to invalid memory
access at the next start (no encoded data) and then stop sequence.
Instead of defining a variable for array length, use GArray::len
directly to avoid such confusion.
Seungha Yang [Thu, 14 Nov 2019 09:57:14 +0000 (18:57 +0900)]
nvenc: Remove unused code path
refilling queue would not happen
Edward Hervey [Thu, 21 Nov 2019 15:38:35 +0000 (16:38 +0100)]
webrtcdatachannels: Don't leak strings
They would leak in error cases
CID: 1455480
Edward Hervey [Thu, 21 Nov 2019 15:24:38 +0000 (16:24 +0100)]
webrtcbin: Fix memory leak
The structure is not used after this block
CID: 1455481
Thiago Santos [Wed, 20 Nov 2019 03:29:26 +0000 (19:29 -0800)]
adaptivedemux: fix 'utc now' gdatetime creation
It broke after removal of usage of GTimeVal that was deprecated,
it requires seconds in this unix-based creation instead of microseconds.
The downside here is that it will create an extra object just to be
discarded in order to add the microsecond part to it.
It would end up segfaulting as it would return a NULL value
Jakub Adam [Mon, 18 Nov 2019 15:15:21 +0000 (16:15 +0100)]
srtobject: allow passing SRT Stream ID in stream URI
Based on Stream ID, the application can accept or reject the connection,
select the desired data stream, or set an appropriate passphrase for the
connection. Example usage:
srt://127.0.0.1:1234?streamid=mystream
Linus Svensson [Wed, 20 Nov 2019 10:34:15 +0000 (11:34 +0100)]
curl: Require libcurl 7.55.0
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T is available from libcurl version
7.55.0.
Julien Isorce [Mon, 18 Nov 2019 22:26:31 +0000 (14:26 -0800)]
msdkdec: fix surface leak in msdkdec_handle_frame
Can be reproduced with:
videotestsrc ! x264enc key-int-max=$N ! \
h264parse ! msdkh264dec ! fakesink sync=1
It happens with any gop size but the smaller is the distance N
between key frames, the quicker it is leaking.
Fixes #1023
Xavier Claessens [Mon, 18 Nov 2019 20:54:42 +0000 (15:54 -0500)]
dash: Fix typo in meson.build
Ederson de Souza [Fri, 1 Nov 2019 22:58:47 +0000 (15:58 -0700)]
avtpcvfdepay: Don't hide gst_pad_push return
avtpcvfdepay was effectively hiding any return from gst_pad_push, so no
errors or GST_FLOW_EOS would be propagated upstream.
Tests also added.
Ederson de Souza [Fri, 1 Nov 2019 22:39:25 +0000 (15:39 -0700)]
avtpcvfpay: Do not hide or modify gst_pad_push errors
Current code would change any non-ok return from gst_pad_push to
GST_FLOW_ERROR, thus hiding meaningful returns such as GST_FLOW_EOS.
Tests also added.
Ederson de Souza [Wed, 30 Oct 2019 22:24:40 +0000 (15:24 -0700)]
avtpcvfdepay: Tone down some log messages
Most of avtpcvfdepay messages are currently logged as warnings, which can
make some scenarios - such as receiving two AVTP streams on the same
pipeline - too verbose.
This patch tones those message down to INFO or DEBUG level - more in
sync with avtpaafdepay logging.
Marc Leeman [Mon, 18 Nov 2019 14:42:35 +0000 (15:42 +0100)]
rtpmanagerbad: allow setting multicast-iface
Allowing the UDP elements to bind on an interface is needed in more
complex networks where there are mutiple networks interfaces without
default gateway