summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-04analytics: whitespace matters for gtk-doc syntaxMathieu Duponchelle
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6253>
2024-03-04analytics: Add documentation to hotdoc buildOlivier Crête
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6253>
2024-03-04analytics: Add missing documentationOlivier Crête
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6253>
2024-03-04analytics: Fix various typos in the documentationOlivier Crête
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6253>
2024-03-04playback: Remove USE_PLAYBIN3 registration overrideEdward Hervey
This was only introduced as a convenience for testing playbin3 instead of playbin2. Now that playbin3 is (explicitely) default in many cases, we should not do this hack anymore Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6255>
2024-03-01audioconvert: set mix-matrix when user changes it to emptyJurijs Satcs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6243>
2024-02-29d3d11memory, d3d12memory: Fix outstanding memory count tracingSeungha Yang
Gets being released memory back to queue even if allocator is flushing in order to count the number of outstanding memory objects. Also, clear queue if there's no outstanding memory object and allocator is flushing Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6240>
2024-02-29tests: d3d11: Add buffer pool testSeungha Yang
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6240>
2024-02-29cudamemory: Fix outstanding memory count tracingSeungha Yang
Gets being released memory back to queue even if allocator is flushing in order to count the number of outstanding memory objects. And fixing double count increment Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6240>
2024-02-29tests: cuda: Add buffer pool testSeungha Yang
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6240>
2024-02-29ges: framepositioner: Expose positioning properties as doublesThibault Saunier
Making it possible to properly handle compositors that have those properties as doubles and handle antialiasing. Internally we were handling those values as doubles in framepositioner, so expose new properties so user can set values as doubles also. This changes the GESFramePositionMeta API but we are still on time for 1.24 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6241>
2024-02-28allocators: drmdumb: Remove extra semicolon after G_DECLARE_FINAL_TYPEMarvin Schmidt
The `G_DECLARE_FINAL_TYPE` macro does not need to be terminated with a semicolon and the extra semicolon breaks building e.g. libcamera with clang because `-Wextra-semi` is used which produces the following error in conjunction with `-Werror`: ``` gstreamer-1.0/gst/allocators/gstdrmdumb.h:61:43: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi] 61 | GST, DRM_DUMB_ALLOCATOR, GstAllocator); | ^ 1 error generated. ``` Fix this by removing the extra semicolon Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6239>
2024-02-28docs: Update lumen themeThibault Saunier
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6224>
2024-02-27waylandsink: Move buffer commits to the display threadDamian Hobson-Garcia
Syncrhonizing buffer commits to the streaming thread can lead to dropped frames when frame callbacks are not processed before the next frame is ready for rendering. Depending on the drift between the wayland compositor and buffer source timings, this can lead to periods of significant frame drop, especially when the media frame rate is close to the display frame rate. Cache buffers in the streaming thread and peform commits on the display thread to eliminate the buffer commit racing. The implementation is the same for both waylandsink and gtkwaylandsink, so move it to the common wayland library under gst-lib. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6133>
2024-02-27wayland: Add API to ref/unref current GstBuffer inside a GstWlBufferDamian Hobson-Garcia
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6133>
2024-02-27wayland: Add synchronized requests to WlDisplayDamian Hobson-Garcia
Add synchonized versions of wl_display_sync() and wl_callback_destroy() that will ensure that to callbacks can be managed in a thread safe way on the display queue even when they are dispatched from a separate thread. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6133>
2024-02-27volume: Expose the `volume-full-range` as another propertyThibault Saunier
In https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5063 the range of volume value has changed which breaks backward compatibility when using a GstDirectControlBinding which is not acceptable. To avoid breaking compatibility add the feature of allowing the full range using another property with the full range. When using that full range, the value of the `volume` property might end up being out of its valid range but we do not really have a good solution for that. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3257 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6222>
2024-02-27rtspsrc: Increase rank to PRIMARY for autoplug purposesNirbheek Chauhan
This affects autoplug by gst_element_make_from_uri() in, for example, uridecodebin. The element should've already been PRIMARY rank, but it was NONE because gst_element_make_from_uri() doesn't ignore NONE rank elements when searching for element factories, unlike decodebin. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/502 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6226>
2024-02-27docs: Use Discourse and Matrix as prefered communication channelsEdward Hervey
Part of: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6220
2024-02-27gitlab_template: Remove duplicate entry and remove mention of IRCEdward Hervey
Part of: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6220
2024-02-26d3d11window_win32: fix crash on RC unprepare() vs window_proc()Alexander Slobodeniuk
Unprepare method posts WM_GST_D3D11_DESTROY_INTERNAL_WINDOW command to the window queue, and from that moment considers internal_hwnd to be released, and so it sets it to null. The problem is that it's possible that right at that moment the window thread might be already processing some other command, or just another command might be already in the queue. On practice we met a crash when WM_PAINT got processed in between (unprepare already finished and WM_GST_D3D11_DESTROY_INTERNAL_WINDOW was not handled yet) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6187>
2024-02-26queue2: post 100% buffering message even when waiting for space to be freedArnaud Vrac
In the case where the queue shrinks due to a property change and the queue becomes full, we would set the waiting_del flag, which would prevent posting the 100% buffering message on the bus. Since the pipeline is not aware of the new buffering value, in the common case where the pipeline is paused during buffering, it would never resume. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
2024-02-26queue2: move gst_queue2_get_buffering_message code to the only call siteArnaud Vrac
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
2024-02-26queue2: remove redundant check to avoid posting the same buffering value twiceArnaud Vrac
Remove the percent_changed check to determine whether a buffering message should be posted. The check on the last posted buffering value is sufficient, and the removal doesn't introduce additional complexity. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
2024-02-26queue2: consolidate buffering message posting codeArnaud Vrac
No need to copy paste the code, simply call the common gst_queue2_post_buffering function. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
2024-02-26queue2: make sure update_buffering is called with the lock takenArnaud Vrac
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
2024-02-26jpegdec: Fix progressive/interlaced detectionSeungha Yang
If input height and parsed one are identical, do not consider it as interlaced Fixing below pipeline: gst-launch-1.0 videotestsrc ! video/x-raw,format=I420,width=640,height=10 \ ! jpegenc ! jpegparse ! jpegdec ! videoconvert ! autovideosink Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6181>
2024-02-26jpegdec: Remove trailing white spaceSeungha Yang
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6181>
2024-02-23Release 1.23.901.23.90Tim-Philipp Müller
2024-02-23vabasedec: Fix a possible NULL pointer dereferenceHe Junyan
The format in _get_preferred_format_and_caps_features() may be NULL. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6206>
2024-02-23urisourcebin: Handle legacy pad replacements from parsebinEdward Hervey
When dealing with demuxers which aren't streams-aware, we need to handle the old-school "stream replacement" dance from `parsebin` and hide that in such a way that output pads are re-used (if compatible). By analyzing the collection posted by parsebin, we can: * Identify whether some output slots are no longer used (because the stream they currently handle is not present in the collection) * Decide if some upcoming streams could re-use the existing slot This supports both buffering and non-buffering modes. Fixes #1651 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6201>
2024-02-23theoradec: Remove mis-leading and redundant uncropped_infoSebastian Dröge
It's actually the cropped info, and equivalent to the info that is already stored as part of the output state. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>
2024-02-23theoradec: Don't leak input state if a second type packet is receivedSebastian Dröge
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>
2024-02-23theoradec: Don't overwrite width/height of the input stateSebastian Dröge
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>
2024-02-23theoradec: Don't use custom allocation logic and always crop locallySebastian Dröge
All video frames have to be copied from libtheora's memory to the output frame anyway, so we can as well do the cropping here directly instead of copying the full frames and having downstream do the cropping. This reduces the complexity of the code considerably, and among other things gets rid of a bug related to buffer pool configuration. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2612 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>
2024-02-23vabasedec: disable derived images for i965 driverVíctor Manuel Jáquez Leal
Since it has a very poor performance at reading derived images, which is the most common use case for decoders. Partially fixes: #3325 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6202>
2024-02-23libav: Don't add `-Werror=deprecated-declarations`Sebastian Dröge
It will fail the build for anybody who has an older FFmpeg version than 6.1 and doesn't use the FFmpeg subproject. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6199>
2024-02-23ffmpeg: Update subproject to 6.1Sebastian Dröge
Otherwise the build will fail after the recent changes because of deprecated API usage. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6199>
2024-02-23vapostproc: optimization for va memory to system memory onlyVíctor Manuel Jáquez Leal
When the conversion is only caps feature from memory:VAMemory to system memory, it's possible to optimize by doing a pseudo pass-through since the va-backed buffers are the same for system memory buffers. This change will also mitigates #2940 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6174>
2024-02-23asiosink: Fix channel selectionSeungha Yang
Fixing copy paste mistake Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3321 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6170>
2024-02-23vabase: fail decide allocation if dmabuf without videometaVíctor Manuel Jáquez Leal
If the allocation query received from downstream doesn't handle GstVideoMeta but it requests memory:DMABuf caps feature, it's incomplete, so we rather reject the negotiation. Both in base decoder, base transform and compositor. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6155>
2024-02-23uridecodebin3: Atomically switch urisourcebinEdward Hervey
When switching urisourcebin, ensure that we first unlink *all* pads from decodebin3 before linking them again. This is to ensure that decodebin3 completely knows that all previous pads are no longer needed and can prepare itself to being re-used. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6179>
2024-02-23uridecodebin3: Unify urisourcebin probe handlingEdward Hervey
Instead of handling events from urisourcebin pads in different probes (a blocking and regular one), move it all to the non-blocking one. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6179>
2024-02-23soup: Re-add soup-lookup-dep optionNirbheek Chauhan
It's still useful on Linux since it ensures that the tests are going to be built, since they use the same dep lookup as the plugin now. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6197>
2024-02-23rtp: Fix constant for maximum two-byte RTP header extension lengthSebastian Dröge
The value is stored as an 8 bit integer, with 0 meaning that there is not data for this extension. That means that the maximum length is 255 bytes and not 256 bytes. On the other hand, the one-byte RTP header extensions are storing the length as a 4 bit integer with an offset of 1 (i.e. 0 means 1 byte extension length), so here 16 is the correct maximum length. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6180>
2024-02-23gstplay: Fix typos in documentationnaglis
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6177>
2024-02-22nvcodec: Add plugin status messageSeungha Yang
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6167>
2024-02-22amfcodec: Add plugin status messageSeungha Yang
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6167>
2024-02-22vabasedec: refactor format and capsfeature selectionVíctor Manuel Jáquez Leal
This is a simplification of the venerable gst_va_base_dec_get_preferred_format_and_caps_features() function, which predates since gstreamer-vaapi. It's used to select the format and the capsfeature to use when setting the output state. It was complex and hard to follow. This refactor simplifies a lot the algorithm. The first thing to remove _downstream_has_video_meta() since, most of the time it will be called before the caps negotiation, and allocation queries make sense only after caps negotiation. It might work during renegotiation but, in that case, caps feature change is uncommon. Better a simple and common approach. Also, for performance, instead of dealing with caps features as strings, GQuarks are used. The refactor works like this: 1. If peer pad returns any caps, the returned caps feature is system memory and looks for a proper format in the allowed caps. 2. The allowed caps are traversed at most 3 times: one per each valid caps feature. First VAMemory, later DMABuf, and last system memory. The first to match in allowed caps is picked, and the first format matching with the chroma is picked too. Notice that, right now, using playbin videoconvert never return any. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6154>
2024-02-22appsrc: clear eos flag on flush stop eventJeongki Kim
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6186>