summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* d3d11videosink: Add render-rectangle propertyHEADmainSeungha Yang2023-05-172-23/+37
| | | | | | | | ... and resize HWND on GstVideoOverlay::set_render_rectangle even when we are rendering without external HWND Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2563 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4653>
* h264parser: Define level enum valuesSeungha Yang2023-05-174-78/+37
| | | | | | ... and stop duplicating it Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4595>
* v4l2videoenc: fix set format failure when needs reset encoderHou Qi2023-05-171-30/+30
| | | | | | | | | | | | | In cases that encoder needs to reset format, there is race while draining. v4l2videoenc finish() sends CMD_STOP command to driver, and desire to return GST_FLOW_OK. But at this time, encoder CAPTURE may have dequeued the last buffer and got eos. finish() return value changes to be GST_FLOW_EOS which causes set format fail. So there is no need to check return value for finish() when set format. Also need to flush encoder after draining to make sure flush is finished. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4495>
* webrtc_sendrecv.py: Add AV1 support when creating the offerNirbheek Chauhan2023-05-171-9/+26
| | | | | | Requires svtav1enc at present for simplicity. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4644>
* webrtc_sendrecv.py: Fix warnings about gi versionNirbheek Chauhan2023-05-171-3/+3
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4644>
* gstplay: avoid getting property of playbin2 if subtitle_sid is nullElliot Chen2023-05-171-2/+4
| | | | | | | | There is a probability of getting "current-text" property when play with playbin3, and this property is available only in playbin2. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4106>
* wasapi2: fix "device" property descriptionSeungha Yang2023-05-174-4/+9
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4651>
* wasapi: fix "device" property descriptionTim-Philipp Müller2023-05-172-2/+2
| | | | | | Fixes gstreamer/gst-plugins-bad#1620 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4651>
* avdtputil: Use int instead of int range for fixed bitpool valuesCarlos Rafael Giani2023-05-171-4/+16
| | | | | | Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1698 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4650>
* cudaconvertscale: Add support for flip/rotationSeungha Yang2023-05-163-20/+368
| | | | | | | Similar to the d3d11convert element, colorspace conversion, resizing and flip/rotation operations can be done in a single kernel function call Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4640>
* d3d11convert: Fix for runtime property updateSeungha Yang2023-05-161-24/+96
| | | | | | | Every setup happens in set_caps() method but basetransform will not call the set_caps() if in/out caps were not changed Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4646>
* decodebin3: fix random hang when remove failing streamHaihua Hu2023-05-161-10/+10
| | | | | | | | | | | | When reconfigure_output_stream entry missing decoder path, requested_selection should been update with what is really active/selected immdiately with SELECTION_LOCK hold. So use an optional message return from reconfigure_output_stream and post it after release SELECTION_LOCK. This can make sure other thread call to check_slot_reconfiguration will got a correct requested_selection. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4599>
* qtmux: Fix extraction of CEA608 data from S334-1A packetsSebastian Dröge2023-05-161-5/+5
| | | | | | | | | | | The index is already incremented by 3 every iteration so multiplying it by 3 additionally on each array access is doing it twice and does not work. This caused invalid files to be created if there's more than one CEA608 triplet in a buffer, and out of bounds memory reads. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4634>
* va: No need to sort the device after registeredHe Junyan2023-05-161-12/+2
| | | | | | | The va devices are already registered by the drm path order, so there is no need to sort them again after registered. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4643>
* va: Sort udev path name before register the va pluginsHe Junyan2023-05-161-0/+17
| | | | | | | | | | | | The devices list returned by g_udev_client_query_by_subsystem() may contain udev devices in disorder path name. For example, on some platform it may contain renderD129 before renderD128 device. This will cause we register wrong va plugin name. In this case, the renderD129 will be registered as default plugins such as vah265dec, while the renderD128 will be registered as varenderD128h265dec. This conflicts with the non-udev version of gst_va_device_find_devices(). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4643>
* splitmuxsrc: Make PTS contiguous by preferenceJan Schmidt2023-05-161-4/+4
| | | | | | | | | | | Make splitmuxsrc deal better with stream reordering by making the largest observed PTS contiguous in the next fragment. Previously, it selected DTS, but then aligned that with the segment start of the next fragment, which holds PTS values - leading to glitches in streams that don't have PTS = DTS at the start. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4637>
* jpegparse: fix warning text and debug dataVíctor Manuel Jáquez Leal2023-05-151-5/+5
| | | | | | | They were backwards or missing. Fix: #2567 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4641>
* sctpenc: Fix potential shutdown deadlockJohan Sternerup2023-05-151-31/+31
| | | | | | | | | | | | | | | When transitioning from state PAUSED to READY, the sctpenc element could previously be stuck in an endless loop trying to resend data in case the underlying sctp stream was in the process of resetting. usrsctp_sendv() would repeatedly return EAGAIN with the result that 0 bytes were sent and then sctpenc would retry forever. To bring sctpenc out of the resend loop we just need to inform the sink pad that it is flushing, which is already done for the associated data queue, but we also need to set the bools associated with the sinkpads that are used as the loop criterion. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4601>
* msdkmjpegdec: Fix ColorFormat for BGRx formatYinhang Liu2023-05-151-0/+1
| | | | | | | For msdkmjpegdec, the BGRx format is supported in src caps, set the ColorFormat to MFX_JPEG_COLORFORMAT_RGB. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4489>
* msdk: Fix initialization of the msdk_session.impl_idxYinhang Liu2023-05-151-0/+3
| | | | | | This fixes the issue of msdk_session.impl_idx not being initialized. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4448>
* pulse: Change bitfield booleans to normal gbooleansSebastian Dröge2023-05-143-14/+14
| | | | | | | | | | | | | | | | Assigning TRUE (1) to a signed 1 bit integer will cause truncation from 1 to -1 because the only non-zero value that can be stored is -1 due to how two's-complement works. As this is a proper GObject let's not bother with all this and simply use a normal gboolean instead. ../subprojects/gst-plugins-good/ext/pulse/pulsesink.c:1490:19: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion] pbuf->in_commit = TRUE; ^ ~~~~ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4617>
* rtpjitterbuffer: Fix uninitialized variable compiler warningSebastian Dröge2023-05-141-0/+5
| | | | | | | | | | | | | | | | It could indeed be used uninitialized, but only if one of the g_return_val_if_fail() caused an early return. ../subprojects/gst-plugins-good/gst/rtpmanager/rtpjitterbuffer.c: In function ‘rtp_jitter_buffer_append_query’: ../subprojects/gst-plugins-good/gst/rtpmanager/rtpjitterbuffer.c:1234:10: warning: ‘head’ may be used uninitialized [-Wmaybe-uninitialized] 1234 | return head; | ^~~~ ../subprojects/gst-plugins-good/gst/rtpmanager/rtpjitterbuffer.c:1232:12: note: ‘head’ was declared here 1232 | gboolean head; | ^~~~ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4616>
* avviddec: Temporarily unlock stream lock while flushing buffersSebastian Dröge2023-05-131-0/+5
| | | | | | | | | This can call into the decoder again from other threads and try to take the stream lock from there, which would cause a deadlock. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2558 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4610>
* d3d11: Update element metaSeungha Yang2023-05-129-15/+15
| | | | | | Make them consistent, update outdated description and fix some typos Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4619>
* parse/grammar: fix missing unref of looked up childMathieu Duponchelle2023-05-121-0/+2
| | | | | | | the target parameter of gst_child_proxy_lookup() is (transfer full) Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2560 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4622>
* vulkan: minor meson clean upsVíctor Manuel Jáquez Leal2023-05-122-19/+14
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4621>
* ptp-helper: Add some tests for functionality and memory safety of unsafe codeSebastian Dröge2023-05-126-208/+723
| | | | | | | | These tests are mostly for ensuring that the calls to system APIs are done correctly and that there are no memory bugs (that would be caught by valgrind) in the unsafe code. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4458>
* wpe: Add support for the WPEWebKit 2.0 API versionPhilippe Normand2023-05-126-21/+97
| | | | | | | Most notably this disables console messages support when the 2.0 API is used, because there is no replacement for it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4159>
* theoradec: make sure the selected pool accepts the new configMichael Olbrich2023-05-124-33/+185
| | | | | | | | | | | | | If gst_buffer_pool_set_config() fails then the pool will use its old config. This may include different width or height when pic_width/pic_height != frame_width/frame_height. As a result, the assertions in theora_handle_image() will fail. So check the result of gst_buffer_pool_set_config() and only use the pool if it succeeds. Otherwise let the parrent decide_allocation() create a new pool. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4600>
* theoradec: add another assert to check the buffer sizeMichael Olbrich2023-05-121-0/+2
| | | | | | | | If the buffer has no video meta then the meta is created from the local data. In this case, the other asserts don't actually check anything. So add another one to ensure that the buffer is actually large enough. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4600>
* theoradec: remove unused codec state variableMichael Olbrich2023-05-121-4/+0
| | | | | | | The last user of this state was removed in 9a541157cf1c "theoradec: Fix decoding in the presence of GstVideoCropMeta". Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4600>
* meson: Install viv-fb GL headers, needed by i.MXNirbheek Chauhan2023-05-121-0/+5
| | | | | | | | | Needed by qmlglsink at build time to allocate a viv-fb display. Without this, the GL fastpath doesn't work, and performance is really bad. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4613>
* video: video-info-dma: Fix return valueYinhang Liu2023-05-121-2/+2
| | | | | | | The return value of gst_video_info_dma_drm_new_from_caps is a pointer type, and should not return a boolean type. Fix this issue. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4612>
* webrtc: advertise end-of-candidate with an empty candidate stringMatthew Waters2023-05-122-16/+138
| | | | | | | | Just like what is done in the browsers. When this is sent to the peer, they will be able to know that no more candidates are coming and can complete ICE. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4598>
* macos: Set activation policy in osxvideosink and glimagesinkPiotr Brzeziński2023-05-122-8/+17
| | | | | | | | Upon creating a window, glimagesink and osxvideosink now set the policy to NSApplicationActivationPolicyRegular, which lets us show an icon in the Dock for convenience and appear in the top menu bar like other apps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4573>
* macos: Set activation policy in `gst_macos_main`Lukas Geiger2023-05-121-0/+3
| | | | | | | | | | Setting the policy to NSApplicationActivationPolicyAccessory by default makes sure that we can activate windows programmatically or by clicking on them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front again. This change also allows osxvideosink to receive navigation events correctly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4573>
* macos: Remove old NSApp workaround related codePiotr Brzeziński2023-05-116-531/+15
| | | | | | | | | | | | | This is no longer needed since the introduction of `gst_macos_main()` in 1.22. Before that existed, we had a patch for GLib in Cerbero, which did work but made it impossible to update GLib at all. The code being removed was a fail-safe in case of running without said patch being applied. It's no longer needed, since for macOS we just wrap our GStreamer with an NSApplication using `gst_macos_main()`. Warnings will be displayed if no NSApp/NSRunLoop is found wherever needed, pointing the user towards using the new API. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4366>
* qtdemux: add unit test for edit list regressionTim-Philipp Müller2023-05-112-1/+125
| | | | | | | | | | | File is the mp4 file from #2549 with the mdat atom zeroed out and compressed. We compress twice because apparently compressing 5MB of zeroes effectively in one run is too difficult for gzip. https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2549 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4560>
* Revert "qtdemux: fix conditions for end of segment in reverse playback"Mathieu Duponchelle2023-05-111-9/+1
| | | | | | | | | | | | | | | This reverts commit 9deb3c27acd4161f810cd782f03bcdaccf2643c7. The test case that was described in the associated MR (https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/262) remains adequately fixed by a related MR that was merged later (https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/275). It introduced incorrect logic that broke edit lists as described in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2549 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2549 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4560>
* osxvideosink: fix deadlock upon closing output windowPiotr Brzeziński2023-05-111-2/+3
| | | | | | | | | Invoking gst_osx_video_sink_osxwindow_destroy() can currently cause a deadlock because showFrame() keeps trying to get the same lock as well. Moving the lock closer to where it's actually needed seems to be enough to fix the issue for now. Reported-by: Alexande B <abobrikovich@gmail.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4559>
* vkshaderspv: fix exampleVíctor Manuel Jáquez Leal2023-05-101-1/+1
| | | | | | Use the correct element names. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4594>
* d3d11videosink: Don't clear prepared buffer on unlock_stop()Seungha Yang2023-05-101-2/+2
| | | | | | | That can be called between prepare() and render() which results in unexpected error flow return Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4583>
* msdk: fix a not referenced build errorTong Wu2023-05-101-0/+1
| | | | | | Error Type: error C4189: ‘dma_caps’: local variable is initialized but not referenced Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4587>
* mpeg2dec: Fix conflicting type declarationEdward Hervey2023-05-101-1/+1
| | | | | | It was always a GstFlowReturn Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4588>
* closedcaption: write 0x00 padding instead of 0x80 in cc_data/cdpMatthew Waters2023-05-107-42/+48
| | | | | | | | | Depending on the exact output format, 0x00 may be a better default for padding than 0x80. 0x00 is the recommended padding value when used in CDP (and cc_data) but is not when used in s334-1a. See CTA-708-E 4.3.5 amd SMPTE 334-1-2007 5.3.2. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4578>
* ges: discoverer-manager: Don't mark signals as action signalsSebastian Dröge2023-05-092-4/+4
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4579>
* ges: discoverer-manager: Mark `discovered` signal error parameter as nullableSebastian Dröge2023-05-092-2/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4579>
* h264decoder: Drop nonexisting picture silently without errorSeungha Yang2023-05-091-4/+10
| | | | | | | | If end_picture() was not successful, we do drop corresponding GstVideoCodecFrame and therefore gst_video_decoder_get_frame() will return nullptr which is expected behavior. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4561>
* rtpmanager/rtsession: data race leading to critical warningsFrançois Laignel2023-05-091-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a fix for a data race leading to: > GLib-CRITICAL: g_hash_table_foreach: > assertion 'version == hash_table->version' failed Identified sequence: * `rtp_session_on_timeout` acquires the lock on `session` and proceeds with its processing. * `rtp_session_process_rtcp` is called (debug log : received RTCP packet) and attempts to acquire the lock on `session`, which is still held by `rtp_session_on_timeout`. * as part of an hash table iterator, `rtp_session_on_timeout` transitively invokes `source_caps` which releases the lock on `session` so as to call `session->callbacks.caps`. * Since `rtp_session_process_rtcp` was waiting for the lock to be released, it succeeds in acquiring it and proceeds with `rtp_session_process_rr` which transitively calls `g_hash_table_insert` via `add_source`. * After `source_caps` re-acquires the lock and gives the control flow back to `rtp_session_on_timeout`, the hash table iterator is changed, resulting in the assertion failure. This commits copies `sess->ssrcs[sess->mask_idx]` and iterates on the copy so the iterator is not affected by a concurrent change due to the lock being released in the `source_caps` callback. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4555>
* rtpdtmfdepay: Classify as RTP elementPhilippe Normand2023-05-092-2/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4582>