- Sep 23, 2021
-
-
Tim-Philipp Müller authored
-
- Aug 26, 2021
-
-
yuankun zhang authored
It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will return false even if this platform support the mem_type dma buffer. And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2 on Gen12(such as TGL). Without this patch, The command such as: gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \ x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink will return not-negotiated. Signed-off-by:
Zhang Yuankun <yuankunx.zhang@intel.com> Part-of: <!437>
-
- Aug 25, 2021
-
-
Just like what we do in VA plugins. The display can be seen as a generic gst object and we can add a property to get the internal VA handle. Part-of: <!435>
-
Just like what we do in VA plugins, the GST_MAP_VAAPI can directly peek the surface of the VA buffers. The old flag 0 just peek the surface proxy, which may not be convenient for the users who do not want to include our headers. Part-of: <!435>
-
- Jul 09, 2021
-
-
Víctor Manuel Jáquez Leal authored
This reverts commit 7a25c5d4. Part-of: <!436>
-
- Jul 01, 2021
-
-
We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(), whose context does not hold the stream lock of the encoder. The current gst_vaapiencode_drain inside unlock/lock pair adds a extra lock count to the stream lock of encoder and causes hang later. We just remove the gst_vaapiencode_drain() and expand its logic correctly according to the lock/unlock context. Part-of: <!433>
-
We need to clean all film_grain_info fields when the film grain feature is not enabled. It may have random data because the picture parameter buffer is not cleaned. Part-of: <!434>
-
- Jun 23, 2021
- Jun 10, 2021
-
- Jun 02, 2021
-
-
Alloc size is based on existing allocations and struct sizes. g_memdup() is deprecated since GLib 2.68 and we want to avoid deprecation warnings with recent versions of GLib. Part-of: <!431>
-
- Jun 01, 2021
-
-
Tim-Philipp Müller authored
-
- May 31, 2021
-
-
Tim-Philipp Müller authored
-
- May 21, 2021
-
-
One of the main reasons of vaapidecodebin was because it mitigated the possible surface exhaustion. But that problem is currently solved. Nowadays, vaapidecodebin brings more problems than it solves. Thus this patch demotes vaapidecodebin to NONE rank while bumping PRIMARY + 1 the most common decoders. Part-of: <!426>
-
- May 20, 2021
-
-
Víctor Manuel Jáquez Leal authored
Since almost all video filters have rank NONE, these both elements should be NONE too. This is useful for autovideoconvert and other bins, and users might force to use these by setting the environment variable GST_PLUGIN_FEATURE_RANK. Part-of: <!429>
-
- May 05, 2021
-
-
Instead of the deprecated gst_element_get_request_pad. Part-of: <!425>
-
- Apr 23, 2021
-
-
yuankun zhang authored
The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum width of a tile in units of superblocks. So the max width of one tile should not be larger than 64x64=4096. When the width exceeds 4k, we need to split it into multiple tiles in columns. The current vp9 encoder does not handle this correctly. The command such as: gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \ vaapivp9enc ! fakesink will crash. Part-of: <!424>
-
- Apr 08, 2021
-
-
Haihao Xiang authored
Otherwise user will be misled that the specified device is using This fixes #305 Part-of: <!422>
-
- Mar 22, 2021
-
- Mar 19, 2021
-
-
Matthew Waters authored
volatile is not sufficient to provide atomic guarantees and real atomics should be used instead. GCC 11 has started warning about using volatile with atomic operations. https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719 Discovered in gst-plugins-good#868 Part-of: <!418>
-
- Feb 27, 2021
-
-
Paul Goulpié authored
forgot during the following mainline commit: bc2f8fd1# Signed-off-by:
Paul Goulpié <paul.goulpie@ubicast.eu>
-
- Feb 04, 2021
-
-
We should query the downstream element to answer a precise allocation query when the passthrough mode is enabled. The current way still decides the allocation by the postproc itself. The pipeline such as: gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \ vaapipostproc ! fakevideosink silent=false sync=true will lose some info such as the GST_VIDEO_META_API_TYPE. Part-of: <!413>
-
- Jan 29, 2021
-
-
Attributes for drm backend: - va-display : ponter of VADisplay - drm-device-fd : the DRM device file descriptor Part-of: <!409>
-
Currently the default drm device is always used on a system with multiple drm devices. This patch allows user to specify the required drm device via GST_VAAPI_DRM_DEVICE env variable Example: GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc ! vaapih264enc ! fakesink Part-of: <!409>
-
- Jan 28, 2021
-
-
Haihao Xiang authored
drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]), so we can't get the right device path. Running test-display will get the error below: ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA display Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this issue because a special permission is required for SET_VERSION ioctl. This patch retrieves the device path from file descriptor via g_file_read_link() [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104 Part-of: <!412>
-
- Jan 20, 2021
-
-
Rafał Dzięgiel authored
Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc. In latest mesa versions the first fbconfig might not be 8 bit, so iterate over it to find the correct config with supported values. This also adds 8 bit alpha size to the framebuffer configuration which is required to get it working properly. Part-of: <!410>
-
- Jan 11, 2021
- Jan 09, 2021
-
- Jan 05, 2021
-
-
He Junyan authored
The AV1 film_graim feature needs two surfaces the same time for decoding. One is for recon surface which will be used as reference later, and the other one is for display. The GstVaapiPicture should contain the surface for display, while the vaBeginPicture() need the recon surface as the target. We add a gst_vaapi_picture_decode_with_surface_id API to handle this kind of requirement. Part-of: <!191>
-
- Dec 14, 2020
-
- Dec 12, 2020
-
-
Víctor Manuel Jáquez Leal authored
Part-of: <!406>
-
- Dec 11, 2020
-
-
The current encoder will hang when EOS comes. When we call the gst_vaapi_encoder_encode_and_queue(), we should release the stream lock, just like what we do in gst_vaapiencode_handle_frame(). The deadlock happens when: The input thread holding the stream lock is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded buffer, while the output thread which holding the coded buffer resource is acquiring the stream lock in _push_frame() to push the data to down stream element. Part-of: <!404>
-
- Dec 08, 2020
-
-
He Junyan authored
gst_vaapi_encoder_h264_get_pending_reordered() does not consider the case for HIERARCHICAL_B mode. The pipeline: gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \ keyframe-period=32 ! fakesink get a assert: ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b: assertion failed: (count != 0) The last few B frames are not fetched in correct order when HIERARCHICAL_B is enabled. We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames make the last several frames encoded in reverse order. The NAL of last few frames come in reverse order in the bit stream, though it can still output the correct image. Part-of: <!405>
-
- Dec 06, 2020
-
-
In scc mode, the I frame can ref to itself and it needs the L0 reference list enabled. So we should set the I frame to P_SLICE type. We do not need to change the ref_pic_list0/1 passed to VA driver, just need to enable the VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify the driver consider the current frame as reference. For bits conformance, the NumRpsCurrTempList0 should be incremented by one to include the current picture as the reference frame. We manually do it when packing the slice header. Command line like: gst-launch-1.0 videotestsrc num-buffers=10 ! \ capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \ vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \ filesink location=out.265 Can be used to specify that the encoder should use SCC profiles. Part-of: <!379>
-
- Nov 30, 2020
-
-
We store the allowed profiles list to encoder in set_config(). Part-of: <!380>
-
Part-of: <!380>
-
Once we decide the profile and can get the valid entrypoint for that profile, hw must already support this profile/entrypoint pair. No need to check it again in set_context_info(). Part-of: <!380>
-
We should decide the VP9 encoder's profile based on the chroma and depth of the input format, then make sure it is included in the allowed list. Part-of: <!380>
-