- Jan 17, 2020
-
-
Nirbheek Chauhan authored
Our context is non-persistent, and we propagate it throughout the pipeline. This means that if we try to reuse any gstmsdk element by removing it from the pipeline and then re-adding it, we'll clone the mfxSession and create a new gstmsdk context as a child of the old one inside `gst_msdk_context_new_with_parent()`. Normally this only allocates a few KB inside the driver, but on Windows it seems to allocate tens of MBs which leads to linearly increasing memory usage for each PLAYING->NULL->PLAYING state cycle for the process. The contexts will only be freed when the pipeline itself goes to `NULL`, which would defeat the purpose of dynamic pipelines. Essentially, we need to optimize the case in which the element is removed from the pipeline and re-added and the same context is re-set on it. To detect that case, we set the context on `old_context`, and compare it to the new one when preparing the context. If they're the same, we don't need to do anything. Fixes gstreamer/gst-plugins-bad#946
-
Nirbheek Chauhan authored
Split it out into a separate function with early exits to make the flow clearer, and document what the function is doing clearly. No functional changes.
-
Nirbheek Chauhan authored
-
Nirbheek Chauhan authored
If we're using the software implementation, we should not use video memory because that will be too slow.
-
Nirbheek Chauhan authored
`gst_object_replace()` is not supposed to be used for unreffing and NULLing objects.
-
- Jan 15, 2020
-
-
-
Haihao Xiang authored
Copied and pasted from gstreamer-vaapi and did a few changes for gst-msdk.
-
Haihao Xiang authored
Allow the base class to copy GstVideoRegionOfInterestMeta data to the output buffer when calling gst_video_decoder_finish_frame
-
Haihao Xiang authored
A reconfig is needed when ROI is changed, otherwise the ROI parameters won't take effect
-
Haihao Xiang authored
set_extra_params is added to allow sub class to add extra mfx parameters for changed input frame or meta data
-
Haihao Xiang authored
need_reconfig is added to allow sub class requires a reconfig when the input frame or the MetaData (e.g. GstVideoRegionOfInterestMeta) attached to the input frame is changed.
-
- Jan 14, 2020
-
-
... and handle EOS and EOB nals. Only the first CRA picture should be associated with NoRaslOutputFlag as the comment in code.
-
Nirbheek Chauhan authored
`@videolibdir@` isn't used anymore.
-
Nirbheek Chauhan authored
-
Nirbheek Chauhan authored
-
Nirbheek Chauhan authored
`pipe()` isn't used since 15927b65, and `socketpair()` from `#include <sys/socket.h>` is used only in the examples. In practice, you can use probably also use anything that allows you to create fd pairs, such as named pipes or anonymous pipes. We use the cross-platform GstPollFD API in the plugin.
-
- Jan 13, 2020
-
-
Default to 150ms instead of 8 frames, which seems to work in the majority of cases.
-
-
Seungha Yang authored
Use consistent memory layout between dxva and other shader use case. For example, use DXGI_FORMAT_NV12 texture format instead of two textures with DXGI_FORMAT_R8_UNORM and DXGI_FORMAT_R8G8_UNORM.
-
Seungha Yang authored
This reverts commit ddd13fc7 Dynamic usage can reduce the number of copy per frame but make things complicated and the benefit seems to not significant. Also since we don't provide _map() method for the dynamic usage, application cannot read buffers which make "last-sample" property unusable in case of d3d11videosink.
-
- Jan 12, 2020
-
-
Jan Schmidt authored
Add any ICE candidates from the SDP before adding pending trickle ICE candidates to support non-trickle peers Fixes gstreamer/gst-plugins-bad#678
-
- Jan 11, 2020
-
-
Seungha Yang authored
DXVA requires a hardware interface but may not be available, such as in the case of VMs or when the GPU vendor does not provide a decoder interface.
-
Seungha Yang authored
... and change some debug levels since initialization failure might not be fatal.
-
- Jan 10, 2020
-
-
xdg_shell fullscreen mode doesn't work for committing xdg_surface without configure acknowledgement. In addition, we can't set different surface setting from acknowledged config in this mode.
-
Some raw h264 encoded files trigger the assignment of wrong PTS to buffers when some SEI data is provided. This change prevents it to happen. Also ensure this behavior is being tested.
-
Sebastian Dröge authored
-
Sebastian Dröge authored
We might have some old timecodes that are in the future now and have to drop those to make sure that our queue is correctly ordered and we don't have multiple timecodes for the same running time.
-
Sebastian Dröge authored
-
Sebastian Dröge authored
Directly read them out of the decoder as soon as we passed audio and then store them in a queue that we handle internally together with their timestamps. This cleans up memory management and gives us proper control over the queue instead of guessing how the queue inside the LTC decoder actually works and when it overflows.
-
Sebastian Dröge authored
And don't introduce any latency at all if not LTC audio pad was requested.
-
Sebastian Dröge authored
And also introduce 6 instead of 2 frames of latency compared to the LTC audio input as that seems to be an upper bound for how much the LTC library is lagging behind.
-
Sebastian Dröge authored
Otherwise we don't interpolate between LTC timecodes but only ever put an LTC timecode on buffers once we actually received one.
-
This g_once() is called everywhere, even in provider. This cause spurious error when device monitor is used. Just silence or remove the spurious logs.
-
Seungha Yang authored
AES128 support was added since nettle version 3.0 ../subprojects/gst-plugins-bad/ext/hls/gsthlsdemux.h:110:10: error: field ‘ctx’ has incomplete type struct CBC_CTX (struct aes128_ctx, AES_BLOCK_SIZE) aes_ctx;
-
Haihao Xiang authored
Commit a1584b6f caused big performance drop if the downstream element is not a msdk element because it is very slow to read data from video memory directly. This reverts commit a1584b6f.
-
- Jan 09, 2020
-
-
Seungha Yang authored
By default new test cases are disabled since it might be timed out or test environment might not have render device.
-
Seungha Yang authored
P016 format is no different than P010. Not much things to add code.
-
Seungha Yang authored
-
Seungha Yang authored
... and remove code for RGBx since it's not supported format by our d3d11 implementation for now.
-
Seungha Yang authored
-