Projects
Essentials
gstreamer-plugins-bad-codecs
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 27
View file
gstreamer-plugins-bad-codecs.changes
Changed
@@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Thu Nov 7 08:53:42 UTC 2024 - Bjørn Lie <zaitor@opensuse.org> + +- Update to version 1.24.9 + +------------------------------------------------------------------- Sat Sep 28 08:31:55 UTC 2024 - Bjørn Lie <zaitor@opensuse.org> - Update to version 1.24.8
View file
gstreamer-plugins-bad-codecs.spec
Changed
@@ -7,7 +7,7 @@ %define _version 1.24.0 Name: gstreamer-plugins-bad-codecs -Version: 1.24.8 +Version: 1.24.9 Release: 0 Summary: Codecs/plugins for gstreamer-plugins-bad License: LGPL-2.1-or-later @@ -35,10 +35,8 @@ BuildRequires: pkgconfig(gstreamer-video-1.0) >= %{_version} BuildRequires: pkgconfig(gstreamer-codecparsers-1.0) >= %{_version} BuildRequires: pkgconfig(libde265) >= 0.9 -#BuildRequires: pkgconfig(libmodplug) BuildRequires: pkgconfig(libopenaptx) BuildRequires: pkgconfig(librtmp) -#BuildRequires: pkgconfig(vo-aacenc) >= 0.1.0 BuildRequires: pkgconfig(x265) Provides: gstreamer-plugins-bad-orig-addon = %{version} @@ -67,11 +65,9 @@ -Dorc=enabled \ -Dfaac=enabled \ -Dfaad=enabled \ - -Dmodplug=disabled \ -Drtmp=enabled \ -Dx265=enabled \ -Dopenaptx=enabled \ - -Dvoaacenc=disabled \ %{nil} %meson_build @@ -86,10 +82,8 @@ %{_libdir}/gstreamer-%{gst_branch}/libgstde265.so %{_libdir}/gstreamer-%{gst_branch}/libgstfaac.so %{_libdir}/gstreamer-%{gst_branch}/libgstfaad.so -#%%{_libdir}/gstreamer-%%{gst_branch}/libgstmodplug.so %{_libdir}/gstreamer-%{gst_branch}/libgstopenaptx.so %{_libdir}/gstreamer-%{gst_branch}/libgstrtmp.so -#%%{_libdir}/gstreamer-%%{gst_branch}/libgstvoaacenc.so %{_libdir}/gstreamer-%{gst_branch}/libgstx265.so %changelog
View file
build_what_we_need_only.patch
Changed
@@ -1,7 +1,7 @@ diff -Nur gst-plugins-bad-1.24.0-orig/ext/meson.build gst-plugins-bad-1.24.0/ext/meson.build ---- gst-plugins-bad-1.24.0-orig/ext/meson.build 2024-03-05 00:51:42.000000000 +0100 -+++ gst-plugins-bad-1.24.0/ext/meson.build 2024-06-28 08:53:47.922413595 +0200 -@@ -1,79 +1,7 @@ +--- gst-plugins-bad-1.24.8-orig/ext/meson.build 2024-11-07 10:01:22.608511550 +0100 ++++ gst-plugins-bad-1.24.8/ext/meson.build 2024-11-07 10:11:02.453058906 +0100 +@@ -1,79 +1,6 @@ -subdir('aes') -subdir('analyticsoverlay') -subdir('assrender') @@ -54,7 +54,7 @@ -subdir('opus') -subdir('qroverlay') -subdir('qt6d3d11') - subdir('resindvd') +-subdir('resindvd') -subdir('rsvg') subdir('rtmp') -subdir('sbc')
View file
gst-plugins-bad-1.24.8.tar.xz/ChangeLog -> gst-plugins-bad-1.24.9.tar.xz/ChangeLog
Changed
@@ -1,3 +1,238 @@ +=== release 1.24.9 === + +2024-10-30 20:33:30 +0000 Tim-Philipp Müller <tim@centricular.com> + + * NEWS: + * RELEASE: + * gst-plugins-bad.doap: + * meson.build: + Release 1.24.9 + +2024-10-29 11:29:05 +0100 Edward Hervey <edward@centricular.com> + + * ext/srt/gstsrtobject.c: + srt: Don't attempt to reconnect on authentication failures + This is a fatal issue which can't be recovered + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1550 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7797> + +2024-10-14 11:26:20 +0200 Emil Ljungdahl <emillj@axis.com> + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Clean up bin elements when datachannel is removed + When a datachannel within a session is removed after proper close, + reference to the error_ignore_bin elements of the datachannel + appsrc/appsink were left in webrtcbin. + This caused the bin-objects to be left and not freed until the whole + webrtc session was terminated. Among other things that includes a thread + from the appsrc. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7791> + +2024-09-24 13:55:39 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * docs/plugins/gst_plugins_cache.json: + * gst-libs/gst/wayland/gstwlvideoformat.c: + * gst-libs/gst/wayland/gstwlvideoformat.h: + wayland: Add NV15 support + This format, which maps to NV12_10LE40 in GStreamer is produced by Rockchip + video decoders when decoding 4:2:0 10 bit content. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7789> + +2024-10-22 23:41:13 +0900 Seungha Yang <seungha@centricular.com> + + * gst-libs/gst/codecs/gstvp8decoder.c: + vp8decoder: Fix resolution change handling + Do not store resolution in set_format() so that resolution change + can be detected on keyframe as intended. + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3928 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7787> + +2024-10-25 16:37:15 +0300 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtmp2/gstrtmp2sink.c: + rtmp2sink: Initialize base_ts / last_ts with the actual first observed timestamp + Initializing it with zero can falsely trigger the overflow / underflow detection + code if the first observed timestamp is a big integer. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7786> + +2024-09-30 15:51:04 +0300 Sebastian Dröge <sebastian@centricular.com> + + * gst/mpegtsdemux/mpegtspacketizer.c: + mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true + The wraparound handling code assumes that the PCR gets updated regularly for + being able to detect wraparounds. With ignore-pcr=true that was not the case and + it stayed initialized at 1h forever. + To avoid this problem, update the fake PCR whenever the PTS advanced by more + than 5s, and also detect wraparounds in these fake PCRs. + Problem can be reproduced with + $ gst-launch-1.0 videotestsrc pattern=black ! video/x-raw,framerate=1/5 ! \ + x264enc speed-preset=ultrafast tune=zerolatency ! mpegtsmux ! \ + tsdemux ignore-pcr=true ! fakesink + which restarts timestamps at 0 after around 26h30m. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7763> + +2024-10-26 11:42:48 +0300 Sebastian Dröge <sebastian@centricular.com> + + * gst-libs/gst/play/gstplay.c: + * gst-libs/gst/play/gstplay.h: + play: Improve play message API inconsistencies + * Check for the correct message type when parsing + * Use correct field name for warning message details + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7779> + +2024-05-28 04:14:15 +0530 Nirbheek Chauhan <nirbheek@centricular.com> + + * gst-libs/gst/va/meson.build: + * meson.build: + * sys/msdk/gstmsdkallocator_libva.c: + * sys/msdk/gstmsdkcaps.c: + * sys/msdk/gstmsdkdec.c: + * sys/msdk/gstmsdkenc.c: + * sys/msdk/gstmsdkvpp.c: + * sys/msdk/gstmsdkvpputil.c: + * sys/msdk/meson.build: + msdk: Fix libdrm dependency detection and usage + drm_fourcc.h should be picked up via the pkgconfig include, not the + system includedir directly. + Also consolidate the libdrm usage in va and msdk. + All this allows it to be picked up consistently (via the subproject, + for example). + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7760> + +2024-05-27 18:50:23 +0530 Nirbheek Chauhan <nirbheek@centricular.com> + + * gst-libs/gst/va/meson.build: + meson: Don't use fallback: kwarg for libva deps + This will cause a fallback even when the `va` option is `auto`, not + giving the user a chance to provide the dependency via the system, and + likely building this feature unnecessarily. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7760> + +2024-05-27 18:43:33 +0530 Nirbheek Chauhan <nirbheek@centricular.com> + + * gst-libs/gst/va/gstvavideoformat.h: + va: Fix libdrm include + The libdrm/ prefix should not be used, it will be provided by the + pkgconfig file. Also HAVE_LIBDRM is necessary. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7760> + +2024-10-23 14:28:30 +0200 Peter Stensson <petest@axis.com> + + * gst/codectimestamper/gstcodectimestamper.c: + * tests/check/elements/h264timestamper.c: + codectimestamper: Fix gint wraparound in pts_compare_func + The diff between compared timestamps might be outside the gint range + resulting in wrong sorting results. This patch corrects that by + comparing the timestamps and then returning -1, 0 or 1 depending on the + result. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7737> + +2024-10-24 14:40:23 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> + + * sys/applemedia/vtdec.c: + vtdec: add support for level 6 6.1 and 6.2 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7735> + +2024-10-11 11:58:37 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> + + * gst-libs/gst/codecparsers/gsth264bitwriter.c: + * gst-libs/gst/codecparsers/gsth265bitwriter.c: + h26xbitwriter: false have_space if aligning fails on aud + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7697> + +2024-10-15 16:44:27 +0800 He Junyan <junyan.he@intel.com> + + * sys/va/gstvaav1enc.c: + vaav1enc: Do not enable palette mode by default + Palette mode should only be enabled only when we know that the content + of the picture is simple. For example, only white letters on black + screen in SCC mode. So, by default, we need to disable it. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7696> + +2024-09-27 18:01:53 +0200 Benjamin Gaignard <benjamin.gaignard@collabora.com> + + * sys/kms/gstkmssink.c: + kmssink: Add IMX-DCSS auto-detection + Add IMX DCSS display controller into list of + auto-detected modules. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7695> + +2024-10-09 12:32:34 -0400 Francisco Javier Velázquez-García <francisco.velazquez@appear.net> + + * ext/srt/gstsrtsink.c: + srtsink: Add guard for null error when SRT open fails + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7687> + +2024-10-09 12:08:10 -0400 Francisco Javier Velázquez-García <francisco.velazquez@appear.net> + + * ext/srt/gstsrtobject.c: + srtsink: Register SRT listen callback before binding socket + This change https://github.com/Haivision/srt/pull/2683 forces us to + call `srt_listen_callback` before `srt_listen`. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7687> + +2024-10-11 12:07:27 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> + + * gst-libs/gst/codecparsers/gstav1bitwriter.c: + * gst-libs/gst/codecparsers/gsth264bitwriter.c: + * gst-libs/gst/codecparsers/gsth265bitwriter.c: + codecparsers: add debug categories to bitwriters + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7667> + +2024-10-09 17:16:46 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> + + * tests/check/elements/vapostproc.c: + tests: va: fix vapostproc test for DMABuf + Now it picks the first format in the template srcpad list and do + the convertion. Also the format size is reduced because not all + drives support 4K as DMABuf (radeonsi). + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7654> + +2024-10-14 15:31:54 +0200 Stéphane Cerveau <scerveau@igalia.com> + + * gst/videofilters/gstscenechange.c: + scenechange: fix memory leak + A reference to the last buffer(oldbuf) was kept + leading to a memory leak on stop. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7666> + +2024-10-13 23:04:58 +0530 Nirbheek Chauhan <nirbheek@centricular.com> + + * gst-libs/gst/dxva/meson.build: + meson: Explicitly use cpp_std=c++11 for dxva + dxva is built unconditionally on all platforms where introspection is + enabled, so let's fix the build on macOS so that introspection can be + enabled there: https://gitlab.freedesktop.org/nirbheek/cerbero/-/jobs/65009118 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7661> + +2024-10-09 20:37:10 +0300 Jordan Petridis <jordan@centricular.com> + + * tests/check/elements/lc3.c: + tests/lc3: Allocate the same size for the buffer and the data + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7640> + +2024-05-30 07:34:22 +0000 Weijian Pan <pwjworks@gmail.com> + + * sys/applemedia/avfdeviceprovider.m: + avfdeviceprovider: Fix caps leak + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7577> + +2024-09-24 17:01:10 +0200 Hugues Fruchet <hugues.fruchet@foss.st.com> + + * sys/kms/gstkmsallocator.c: + kmsallocator: fix stride with planar formats + This fixes a regression introduced by the merge request + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3801 + The extrapolated stride was computed but not used, resulting in the same + stride being applied to all planes. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7571> + +2024-09-19 12:12:53 +0200 Tim-Philipp Müller <tim@centricular.com> + + * meson.build: + Back to development after 1.24.8 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7549> + === release 1.24.8 === 2024-09-19 12:01:21 +0200 Tim-Philipp Müller <tim@centricular.com>
View file
gst-plugins-bad-1.24.8.tar.xz/NEWS -> gst-plugins-bad-1.24.9.tar.xz/NEWS
Changed
@@ -2,11 +2,11 @@ GStreamer 1.24.0 was originally released on 4 March 2024. -The latest bug-fix release in the stable 1.24 series is 1.24.8 and was released on 19 September 2024. +The latest bug-fix release in the stable 1.24 series is 1.24.9 and was released on 30 October 2024. See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document. -Last updated: Thursday 19 September 2024, 00:30 UTC (log) +Last updated: Wednesday 30 October 2024, 20:00 UTC (log) ## Introduction @@ -2450,8 +2450,6 @@ - decodebin3: Fix collection identity check - encodebin: Fix pad removal - glimagesink: Fix cannot resize viewport when video size changed in caps -- v4l2bufferpool: actually queue back the empty buffer flagged LAST -- v4l2videoenc: unref buffer pool after usage properly - video: Don’t overshoot QoS earliest time by a factor of 2 - meson: gst-play: link to libm @@ -2461,6 +2459,8 @@ - matroskamux: Include end padding in the block duration for Opus streams, fixing firefox compatibility - osxaudio: Avoid dangling pointer on shutdown - splitmuxsink: Override LATENCY query to pretend to downstream that we’re not live +- v4l2bufferpool: actually queue back the empty buffer flagged LAST +- v4l2videoenc: unref buffer pool after usage properly - v4l2: encoder: Add dynamic framerate support gst-plugins-bad @@ -2547,6 +2547,185 @@ - List of Merge Requests applied in 1.24.8 - List of Issues fixed in 1.24.8 +1.24.9 + +The ninth 1.24 bug-fix release (1.24.9) was released on 30 October 2024. + +This release only contains bugfixes and a security fix and it should be safe to update from 1.24.x. + +Highlighted bugfixes in 1.24.9 + +- gst-rtsp-server security fix +- GstAggregator start time selection and latency query fixes for force-live mode +- audioconvert: fix dynamic handling of mix matrix, and accept custom upstream event for setting one +- encodebin: fix parser selection for encoders that support multiple codecs +- flvmux improvments for pipelines where timestamps don’t start at 0 +- glcontext: egl: Unrestrict the support base DRM formats +- kms: Add IMX-DCSS auto-detection in sink and fix stride with planar formats in allocator +- macOS main application event loop fixes +- mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true +- playbin3, decodebin3, parsebin, urisourcebin: fix races, and improve stability and stream-collection handling +- rtpmanager: fix early RTCP SR generation for sparse streams like metadata +- qml6glsrc: Reduce capture delay +- qtdemux: fix parsing of rotation matrix with 180 degree rotation +- rtpav1depay: added wait-for-keyframe and request-keyframe properties +- srt: make work with newer libsrt versions and don’t re-connect on authentication failure +- v4l2 fixes and improvement +- webrtcsink, webrtcbin and whepsrc fixes +- cerbero: fix Python 3.13 compatibility, g-i with newer setuptools, bootstrap on Arch Linux; iOS build fixes +- Ship qroverlay plugin in binary packages - Various bug fixes, memory leak fixes, and other stability and reliability + improvements +- Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements + +gstreamer + +- aggregator: fix start time selection first with force-live +- aggregator: fix live query when force-live is TRUE +- parse-launch: Make sure children are bins before recursing in +- macos: Fix race conditions in cocoa/application main event loop +- multiqueue: Do not unref the query we get in pad->query + +gst-plugins-base + +- audioconvert: fix dynamic handling of mix matrix, accept custom upstream event for setting one +- playback: Fix a variety of decodebin3/parsebin/urisourcebin races +- playbin3: prevent crashing trying to play a corrupted mp4 file (WARNING : HIGH PITCHED CORRUPTED SOUND) +- urisourcebin: Ensure all stream-start are handled +- urisourcebin: Allow more cases for posting stream-collection +- decodebin3: Make update/posting of collection messages atomic +- decodebin3: send selected stream message as long as not all the tracks can’t select decoders +- urisourcebin/parsebin: Improve collection creation and handling +- encodebasebin: Miscellaneous fixes +- allocators: drmdumb: Fix bpp value for P010 +- gldownload: use gst_gl_sync_meta_wait_cpu() +- Revert “meson: Fix invalid include flag in uninstalled gl pc file” +- gl: Fix configure error when libdrm is a subproject +- glcontext: egl: Unrestrict the support base DRM formats +- exiftag: Check the result of gst_date_time_new_local_time(), fixes criticals with malformed EXIF tags + +gst-plugins-good + +- flvmux: Use first running time on the initial header instead of 0 +- rtpmanager: skip RTPSources which are not ready in the RTCP generation +- rtppassthroughpay: Fix reading clock-rate and payload type from caps +- qml6glsrc: Reduce capture delay +- qtdemux: fix parsing of matrix with 180 rotation +- qtdemux: Check fourcc of a second CEA608 atom instead of assuming it’s cdt2 +- qtdemux: Skip zero-sized boxes instead of stopping to look at further boxes +- twcc: Handle wrapping of reference time +- v4l2object: append non colorimetry structure to probed caps +- v4l2: Various fixes and improvement + +gst-plugins-bad + +- avfdeviceprovider: Fix leak from the GstCaps +- codecparsers: add debug categories to bitwriters +- codectimestamper: Fix gint wraparound in pts_compare_func +- dvxa: Explicitly use cpp_std=c++11 +- GstPlay: message parsing and documentation improvements +- h26xbitwriter: false have_space if aligning fails on aud +- kmsallocator: fix stride with planar formats +- kmssink: Add IMX-DCSS auto-detection +- mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true +- rtmp2sink: Initialize base_ts / last_ts with the actual first observed timestamp +- scenechange: fix memory leak +- srtsink: Register SRT listen callback before binding socket +- srt: Don’t attempt to reconnect on authentication failures +- tests: va: fix vapostproc test for DMABuf +- tests: lc3: Allocate the same size for the buffer and the data +- va: Fix libdrm include, plus meson and wrap changes +- vaav1enc: Do not enable palette mode by default +- vp8decoder: Fix resolution change handling +- vtdec: add support for level 6 6.1 and 6.2 +- wayland: Add NV15 support +- webrtcbin: Clean up bin elements when datachannel is removed + +gst-plugins-ugly + +- No changes + +GStreamer Rust plugins + +- Build: turn lto off for dev profile for faster dev builds +- fmp4 hls_live example: Don’t set header-update-mode=update, no need to update the header in live mode +- gtk4paintablesink: Don’t check for a GL context when filtering dmabuf caps +- livesync: Log latency query results when handling latency query too +- onvifmetadatapay: Set output caps earlier, so upstream can send gap events earlier +- rtpav1depay: Add wait-for-keyframe and request-keyframe properties +- spotify: tweak dependencies +- transcriberbin: fix panic during gst-inspect-1.0 -u +- webrtcsink: fix segment format mismatch with remote offer +- webrtcsink: fix assertions when finalizing +- webrtcsink: Fix typo in “turn-servers” property description +- whepsrc: Fix incorrect default caps + +gst-libav + +- avviddec: Unlock video decoder stream lock temporarily while finishing frames + +gst-rtsp-server + +- rtsp-server: Remove pointless assertions that can happen if client provides invalid rates (security fix) + +gstreamer-vaapi + +- No changes + +gstreamer-sharp + +- No changes + +gst-omx + +- No changes + +gst-python + +- No changes + +gst-editing-services + +- ges: Fix name of GESFrameCompositionMeta API type (which caused gobject-introspection failures at build time) + +gst-devtools, gst-validate + gst-integration-testsuites + +- validate: Ignore flaky dash playbin3 issue +- validate: Blacklist more netsim tests + +gst-examples + +- No changes + +Development build environment + +- No changes + +Cerbero build tool and packaging changes in 1.24.9 + +- Fix Python 3.13 compatibility +- gobject-introspection: Import patch to build against newer setuptools +- Switch from wget to curl on Fedora 40 and newer +- bootstrap: Add missing dependencies on Arch Linux +- harfbuzz: Add CXXFLAGS to fix broken build on iOS +- openssl.recipe: Stop using non-existent domain in primary tarball url +- gst-plugins-bad: ship qroverlay plugin + +Contributors to 1.24.9 + +Andoni Morales Alastruey, Arun Raghavan, Benjamin Gaignard, Corentin Damman, Dave Lucia, Edward Hervey, Elliot Chen, eri, +Francisco Javier Velázquez-García, Guillaume Desmottes, He Junyan, Hugues Fruchet, Jakub Adam, James Cowgill, Jan Alexander +Steffens (heftig), Jan Schmidt, Johan Sternerup, Jordan Petridis, L. E. Segovia, Mathieu Duponchelle, Nick Steel, Nicolas +Dufresne, Nirbheek Chauhan, Ognyan Tonchev, Olivier Crête, Peter Stensson, Philippe Normand, Piotr Brzeziński, Sanchayan Maity, +Sebastian Dröge, Shengqi Yu, Stéphane Cerveau, Théo Maillart, Thibault Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, +Weijian Pan, Xavier Claessens, + +… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all! + +List of merge requests and issues fixed in 1.24.9 + +- List of Merge Requests applied in 1.24.9 +- List of Issues fixed in 1.24.9 + Schedule for 1.26 Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
View file
gst-plugins-bad-1.24.8.tar.xz/RELEASE -> gst-plugins-bad-1.24.9.tar.xz/RELEASE
Changed
@@ -1,4 +1,4 @@ -This is GStreamer gst-plugins-bad 1.24.8. +This is GStreamer gst-plugins-bad 1.24.9. The GStreamer team is thrilled to announce a new major feature release of your favourite cross-platform multimedia framework!
View file
gst-plugins-bad-1.24.8.tar.xz/docs/plugins/gst_plugins_cache.json -> gst-plugins-bad-1.24.9.tar.xz/docs/plugins/gst_plugins_cache.json
Changed
@@ -36081,7 +36081,7 @@ "long-name": "Gtk Wayland Video Sink", "pad-templates": { "sink": { - "caps": "video/x-raw:\n format: { AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }\n width: 1, 2147483647 \n height: 1, 2147483647 \n framerate: 0/1, 2147483647/1 \n\nvideo/x-raw(memory:DMABuf):\n format: DMA_DRM\n width: 1, 2147483647 \n height: 1, 2147483647 \n framerate: 0/1, 2147483647/1 \n", + "caps": "video/x-raw:\n format: { AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, NV12_10LE40, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }\n width: 1, 2147483647 \n height: 1, 2147483647 \n framerate: 0/1, 2147483647/1 \n\nvideo/x-raw(memory:DMABuf):\n format: DMA_DRM\n width: 1, 2147483647 \n height: 1, 2147483647 \n framerate: 0/1, 2147483647/1 \n", "direction": "sink", "presence": "always" } @@ -245349,7 +245349,7 @@ "long-name": "wayland video sink", "pad-templates": { "sink": { - "caps": "video/x-raw:\n format: { AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }\n width: 1, 2147483647 \n height: 1, 2147483647 \n framerate: 0/1, 2147483647/1 \n\nvideo/x-raw(memory:DMABuf):\n format: DMA_DRM\n width: 1, 2147483647 \n height: 1, 2147483647 \n framerate: 0/1, 2147483647/1 \n", + "caps": "video/x-raw:\n format: { AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, NV12_10LE40, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }\n width: 1, 2147483647 \n height: 1, 2147483647 \n framerate: 0/1, 2147483647/1 \n\nvideo/x-raw(memory:DMABuf):\n format: DMA_DRM\n width: 1, 2147483647 \n height: 1, 2147483647 \n framerate: 0/1, 2147483647/1 \n", "direction": "sink", "presence": "always" }
View file
gst-plugins-bad-1.24.8.tar.xz/ext/srt/gstsrtobject.c -> gst-plugins-bad-1.24.9.tar.xz/ext/srt/gstsrtobject.c
Changed
@@ -732,6 +732,8 @@ * Boolean to choose whether to automatically reconnect. If TRUE, an element * in caller mode will try to reconnect instead of reporting an error. * + * This will be ignored for authentication failures. + * * Since: 1.22 * */ @@ -1198,19 +1200,22 @@ } poll_added = TRUE; - GST_DEBUG_OBJECT (srtobject->element, "Starting to listen on bind socket"); - if (srt_listen (sock, 1) == SRT_ERROR) { - g_set_error (error, GST_RESOURCE_ERROR, - GST_RESOURCE_ERROR_OPEN_READ_WRITE, "Cannot listen on bind socket: %s", - srt_getlasterror_str ()); - goto failed; - } - srtobject->sock = sock; /* Register the SRT listen callback */ if (srt_listen_callback (srtobject->sock, (srt_listen_callback_fn *) srt_listen_callback_func, srtobject)) { + g_set_error (error, GST_RESOURCE_ERROR, + GST_RESOURCE_ERROR_OPEN_READ_WRITE, + "Failed to register SRT listen callback: %s", srt_getlasterror_str ()); + goto failed; + } + + GST_DEBUG_OBJECT (srtobject->element, "Starting to listen on bind socket"); + if (srt_listen (sock, 1) == SRT_ERROR) { + g_set_error (error, GST_RESOURCE_ERROR, + GST_RESOURCE_ERROR_OPEN_READ_WRITE, "Cannot listen on bind socket: %s", + srt_getlasterror_str ()); goto failed; } @@ -1597,6 +1602,8 @@ g_set_error (&internal_error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_NOT_AUTHORIZED, "Failed to authenticate: %" REASON_FORMAT, REASON_ARGS (reason)); + /* Failure to authenticate are fatal */ + auto_reconnect = FALSE; } else { g_set_error (&internal_error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_READ,
View file
gst-plugins-bad-1.24.8.tar.xz/ext/srt/gstsrtsink.c -> gst-plugins-bad-1.24.9.tar.xz/ext/srt/gstsrtsink.c
Changed
@@ -155,7 +155,7 @@ if (!ret) { /* ensure error is posted since state change will fail */ GST_ELEMENT_ERROR (self, RESOURCE, OPEN_WRITE, (NULL), - ("Failed to open SRT: %s", error->message)); + ("Failed to open SRT: %s", error ? error->message : "Unknown error")); g_clear_error (&error); }
View file
gst-plugins-bad-1.24.8.tar.xz/ext/webrtc/gstwebrtcbin.c -> gst-plugins-bad-1.24.9.tar.xz/ext/webrtc/gstwebrtcbin.c
Changed
@@ -2585,8 +2585,18 @@ if (found == FALSE) { GST_FIXME_OBJECT (webrtc, "Received close for unknown data channel"); - } else if (found_pending == FALSE) { - webrtc->priv->data_channels_closed++; + } else { + gst_element_set_locked_state (channel->src_bin, TRUE); + gst_element_set_state (channel->src_bin, GST_STATE_NULL); + gst_bin_remove (GST_BIN (webrtc), channel->src_bin); + + gst_element_set_locked_state (channel->sink_bin, TRUE); + gst_element_set_state (channel->sink_bin, GST_STATE_NULL); + gst_bin_remove (GST_BIN (webrtc), channel->sink_bin); + + if (found_pending == FALSE) { + webrtc->priv->data_channels_closed++; + } } DC_UNLOCK (webrtc); }
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/codecparsers/gstav1bitwriter.c -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/codecparsers/gstav1bitwriter.c
Changed
@@ -25,6 +25,25 @@ #include "gstav1bitwriter.h" #include <gst/base/gstbitwriter.h> +#ifndef GST_DISABLE_GST_DEBUG +#define GST_CAT_DEFAULT gst_av1_debug_category_get() +static GstDebugCategory * +gst_av1_debug_category_get (void) +{ + static gsize cat_gonce = 0; + + if (g_once_init_enter (&cat_gonce)) { + GstDebugCategory *cat = NULL; + + GST_DEBUG_CATEGORY_INIT (cat, "bitwriter_av1", 0, "av1 bitwriter library"); + + g_once_init_leave (&cat_gonce, (gsize) cat); + } + + return (GstDebugCategory *) cat_gonce; +} +#endif /* GST_DISABLE_GST_DEBUG */ + #define WRITE_BITS_UNCHECK(bw, val, nbits) \ (nbits <= 8 ? gst_bit_writer_put_bits_uint8 (bw, val, nbits) : \ (nbits <= 16 ? gst_bit_writer_put_bits_uint16 (bw, val, nbits) : \
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/codecparsers/gsth264bitwriter.c -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/codecparsers/gsth264bitwriter.c
Changed
@@ -26,6 +26,26 @@ #include <gst/codecparsers/nalutils.h> #include <gst/base/gstbitwriter.h> +#ifndef GST_DISABLE_GST_DEBUG +#define GST_CAT_DEFAULT gst_h264_debug_category_get() +static GstDebugCategory * +gst_h264_debug_category_get (void) +{ + static gsize cat_gonce = 0; + + if (g_once_init_enter (&cat_gonce)) { + GstDebugCategory *cat = NULL; + + GST_DEBUG_CATEGORY_INIT (cat, "bitwriter_h264", 0, + "h264 bitwriter library"); + + g_once_init_leave (&cat_gonce, (gsize) cat); + } + + return (GstDebugCategory *) cat_gonce; +} +#endif /* GST_DISABLE_GST_DEBUG */ + /******************************** Utils ********************************/ #define SIGNED(val) (2 * ABS(val) - ((val) > 0)) @@ -1515,6 +1535,7 @@ /* Add trailings. */ WRITE_BITS (&bw, 1, 1); if (!gst_bit_writer_align_bytes (&bw, 0)) { + have_space = FALSE; goto error; }
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/codecparsers/gsth265bitwriter.c -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/codecparsers/gsth265bitwriter.c
Changed
@@ -27,6 +27,26 @@ #include <gst/base/gstbitwriter.h> #include <math.h> +#ifndef GST_DISABLE_GST_DEBUG +#define GST_CAT_DEFAULT gst_h265_debug_category_get() +static GstDebugCategory * +gst_h265_debug_category_get (void) +{ + static gsize cat_gonce = 0; + + if (g_once_init_enter (&cat_gonce)) { + GstDebugCategory *cat = NULL; + + GST_DEBUG_CATEGORY_INIT (cat, "bitwriter_h265", 0, + "h265 bitwriter library"); + + g_once_init_leave (&cat_gonce, (gsize) cat); + } + + return (GstDebugCategory *) cat_gonce; +} +#endif /* GST_DISABLE_GST_DEBUG */ + /******************************** Utils ********************************/ #define SIGNED(val) (2 * ABS(val) - ((val) > 0)) @@ -2179,6 +2199,7 @@ /* Add trailings. */ WRITE_BITS (&bw, 1, 1); if (!gst_bit_writer_align_bytes (&bw, 0)) { + have_space = FALSE; goto error; }
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/codecs/gstvp8decoder.c -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/codecs/gstvp8decoder.c
Changed
@@ -115,6 +115,9 @@ gst_vp8_parser_init (&priv->parser); priv->wait_keyframe = TRUE; + priv->had_sequence = FALSE; + priv->width = 0; + priv->height = 0; priv->output_queue = gst_queue_array_new_for_struct (sizeof (GstVp8DecoderOutputFrame), 1); @@ -217,9 +220,6 @@ self->input_state = gst_video_codec_state_ref (state); - priv->width = GST_VIDEO_INFO_WIDTH (&state->info); - priv->height = GST_VIDEO_INFO_HEIGHT (&state->info); - query = gst_query_new_latency (); if (gst_pad_peer_query (GST_VIDEO_DECODER_SINK_PAD (self), query)) gst_query_parse_latency (query, &priv->is_live, NULL, NULL);
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/dxva/meson.build -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/dxva/meson.build
Changed
@@ -38,7 +38,8 @@ version : libversion, soversion : soversion, install : true, - dependencies : gstvideo_dep, gstcodecs_dep + dependencies : gstvideo_dep, gstcodecs_dep, + override_options: 'cpp_std=c++11', ) library_def = {'lib': gstdxva}
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/play/gstplay.c -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/play/gstplay.c
Changed
@@ -4721,9 +4721,12 @@ return g_str_equal (gst_structure_get_name (data), GST_PLAY_MESSAGE_DATA); } -#define PARSE_MESSAGE_FIELD(msg, field, value_type, value) G_STMT_START { \ +#define PARSE_MESSAGE_FIELD(msg, expected_msg_type, field, value_type, value) G_STMT_START { \ const GstStructure *data = NULL; \ + GstPlayMessage msg_type; \ g_return_if_fail (gst_play_is_play_message (msg)); \ + gst_play_message_parse_type (msg, &msg_type); \ + g_return_if_fail (msg_type == expected_msg_type); \ data = gst_message_get_structure (msg); \ gst_structure_get (data, field, value_type, value, NULL); \ } G_STMT_END @@ -4740,8 +4743,11 @@ void gst_play_message_parse_type (GstMessage * msg, GstPlayMessage * type) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_TYPE, - GST_TYPE_PLAY_MESSAGE, type); + const GstStructure *data = NULL; + g_return_if_fail (gst_play_is_play_message (msg)); + data = gst_message_get_structure (msg); + gst_structure_get (data, GST_PLAY_MESSAGE_DATA_TYPE, GST_TYPE_PLAY_MESSAGE, + type, NULL); } /** @@ -4749,7 +4755,7 @@ * @msg: A #GstMessage * @duration: (out) (optional): the resulting duration * - * Parse the given duration @msg and extract the corresponding #GstClockTime + * Parse the given duration-changed @msg and extract the corresponding #GstClockTime * * Since: 1.20 */ @@ -4757,8 +4763,8 @@ gst_play_message_parse_duration_updated (GstMessage * msg, GstClockTime * duration) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_DURATION, - GST_TYPE_CLOCK_TIME, duration); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DURATION_CHANGED, + GST_PLAY_MESSAGE_DATA_DURATION, GST_TYPE_CLOCK_TIME, duration); } /** @@ -4766,7 +4772,7 @@ * @msg: A #GstMessage * @position: (out) (optional): the resulting position * - * Parse the given position @msg and extract the corresponding #GstClockTime + * Parse the given position-updated @msg and extract the corresponding #GstClockTime * * Since: 1.20 */ @@ -4774,8 +4780,8 @@ gst_play_message_parse_position_updated (GstMessage * msg, GstClockTime * position) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_POSITION, - GST_TYPE_CLOCK_TIME, position); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_POSITION_UPDATED, + GST_PLAY_MESSAGE_DATA_POSITION, GST_TYPE_CLOCK_TIME, position); } /** @@ -4783,15 +4789,15 @@ * @msg: A #GstMessage * @state: (out) (optional): the resulting play state * - * Parse the given state @msg and extract the corresponding #GstPlayState + * Parse the given state-changed @msg and extract the corresponding #GstPlayState * * Since: 1.20 */ void gst_play_message_parse_state_changed (GstMessage * msg, GstPlayState * state) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_PLAY_STATE, - GST_TYPE_PLAY_STATE, state); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_STATE_CHANGED, + GST_PLAY_MESSAGE_DATA_PLAY_STATE, GST_TYPE_PLAY_STATE, state); } /** @@ -4799,15 +4805,15 @@ * @msg: A #GstMessage * @percent: (out) (optional): the resulting buffering percent * - * Parse the given buffering-percent @msg and extract the corresponding value + * Parse the given buffering @msg and extract the corresponding value * * Since: 1.20 */ void gst_play_message_parse_buffering_percent (GstMessage * msg, guint * percent) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_BUFFERING_PERCENT, - G_TYPE_UINT, percent); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_BUFFERING, + GST_PLAY_MESSAGE_DATA_BUFFERING_PERCENT, G_TYPE_UINT, percent); } /** @@ -4824,9 +4830,10 @@ gst_play_message_parse_error (GstMessage * msg, GError ** error, GstStructure ** details) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_ERROR, G_TYPE_ERROR, error); - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_ERROR_DETAILS, - GST_TYPE_STRUCTURE, details); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_ERROR, GST_PLAY_MESSAGE_DATA_ERROR, + G_TYPE_ERROR, error); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_ERROR, + GST_PLAY_MESSAGE_DATA_ERROR_DETAILS, GST_TYPE_STRUCTURE, details); } /** @@ -4835,7 +4842,7 @@ * @error: (out) (optional) (transfer full): the resulting warning * @details: (out) (optional) (nullable) (transfer full): A #GstStructure containing additional details about the warning * - * Parse the given error @msg and extract the corresponding #GError warning + * Parse the given warning @msg and extract the corresponding #GError * * Since: 1.20 */ @@ -4843,9 +4850,10 @@ gst_play_message_parse_warning (GstMessage * msg, GError ** error, GstStructure ** details) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_WARNING, G_TYPE_ERROR, error); - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_WARNING, GST_TYPE_STRUCTURE, - details); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_WARNING, + GST_PLAY_MESSAGE_DATA_WARNING, G_TYPE_ERROR, error); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_WARNING, + GST_PLAY_MESSAGE_DATA_WARNING_DETAILS, GST_TYPE_STRUCTURE, details); } /** @@ -4854,7 +4862,7 @@ * @width: (out) (optional): the resulting video width * @height: (out) (optional): the resulting video height * - * Parse the given @msg and extract the corresponding video dimensions + * Parse the given video-dimensions-changed @msg and extract the corresponding video dimensions * * Since: 1.20 */ @@ -4862,10 +4870,10 @@ gst_play_message_parse_video_dimensions_changed (GstMessage * msg, guint * width, guint * height) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_VIDEO_WIDTH, - G_TYPE_UINT, width); - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_VIDEO_HEIGHT, - G_TYPE_UINT, height); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_VIDEO_DIMENSIONS_CHANGED, + GST_PLAY_MESSAGE_DATA_VIDEO_WIDTH, G_TYPE_UINT, width); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_VIDEO_DIMENSIONS_CHANGED, + GST_PLAY_MESSAGE_DATA_VIDEO_HEIGHT, G_TYPE_UINT, height); } /** @@ -4873,7 +4881,7 @@ * @msg: A #GstMessage * @info: (out) (optional) (transfer full): the resulting media info * - * Parse the given @msg and extract the corresponding media information + * Parse the given media-info-updated @msg and extract the corresponding media information * * Since: 1.20 */ @@ -4881,8 +4889,8 @@ gst_play_message_parse_media_info_updated (GstMessage * msg, GstPlayMediaInfo ** info) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_MEDIA_INFO, - GST_TYPE_PLAY_MEDIA_INFO, info); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_MEDIA_INFO_UPDATED, + GST_PLAY_MESSAGE_DATA_MEDIA_INFO, GST_TYPE_PLAY_MEDIA_INFO, info); } /** @@ -4890,15 +4898,15 @@ * @msg: A #GstMessage * @volume: (out) (optional): the resulting audio volume * - * Parse the given @msg and extract the corresponding audio volume + * Parse the given volume-changed @msg and extract the corresponding audio volume * * Since: 1.20 */ void gst_play_message_parse_volume_changed (GstMessage * msg, gdouble * volume) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_VOLUME, G_TYPE_DOUBLE, - volume); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_VOLUME_CHANGED, + GST_PLAY_MESSAGE_DATA_VOLUME, G_TYPE_DOUBLE, volume); } /** @@ -4906,13 +4914,13 @@ * @msg: A #GstMessage * @muted: (out) (optional): the resulting audio muted state * - * Parse the given @msg and extract the corresponding audio muted state + * Parse the given mute-changed @msg and extract the corresponding audio muted state * * Since: 1.20 */ void gst_play_message_parse_muted_changed (GstMessage * msg, gboolean * muted) { - PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_DATA_IS_MUTED, G_TYPE_BOOLEAN, - muted); + PARSE_MESSAGE_FIELD (msg, GST_PLAY_MESSAGE_MUTE_CHANGED, + GST_PLAY_MESSAGE_DATA_IS_MUTED, G_TYPE_BOOLEAN, muted); }
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/play/gstplay.h -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/play/gstplay.h
Changed
@@ -409,7 +409,7 @@ GstPlaySnapshotFormat format, const GstStructure * config); GST_PLAY_API -gboolean gst_play_is_play_message (GstMessage *msg); +gboolean gst_play_is_play_message (GstMessage *msg); GST_PLAY_API void gst_play_message_parse_type (GstMessage *msg, GstPlayMessage *type);
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/va/gstvavideoformat.h -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/va/gstvavideoformat.h
Changed
@@ -25,8 +25,8 @@ #include <gst/video/video.h> #include <va/va.h> -#ifndef G_OS_WIN32 -#include <libdrm/drm_fourcc.h> +#ifdef HAVE_LIBDRM +#include <drm_fourcc.h> #else /** * DRM_FORMAT_INVALID: (skip) (attributes doc.skip=true)
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/va/meson.build -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/va/meson.build
Changed
@@ -69,31 +69,26 @@ libva_req = '>= 1.18' endif -libva_dep = dependency('libva', version: libva_req, required: va_required, - fallback: 'libva', 'libva_dep') +libva_dep = dependency('libva', version: libva_req, required: va_required) if not libva_dep.found() subdir_done() endif if host_system == 'linux' - libva_drm_dep = dependency('libva-drm', version: libva_req, required: va_required, - fallback: 'libva', 'libva_drm_dep') + libva_drm_dep = dependency('libva-drm', version: libva_req, required: va_required) if not libva_drm_dep.found() subdir_done() endif platform_deps += libva_drm_dep - libdrm_dep = dependency('libdrm', version: '>=2.4', required: get_option('drm')) if libdrm_dep.found() platform_deps += libdrm_dep - extra_args += '-DHAVE_LIBDRM' endif va_sources += va_linux_sources va_headers += va_linux_headers else - libva_win32_dep = dependency('libva-win32', version: libva_req, required: va_required, - fallback: 'libva', 'libva_win32_dep') + libva_win32_dep = dependency('libva-win32', version: libva_req, required: va_required) if not libva_win32_dep.found() subdir_done() endif
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/wayland/gstwlvideoformat.c -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/wayland/gstwlvideoformat.c
Changed
@@ -36,6 +36,9 @@ #ifndef WL_SHM_FORMAT_P010 #define WL_SHM_FORMAT_P010 DRM_FORMAT_P010 #endif +#ifndef WL_SHM_FORMAT_NV15 +#define WL_SHM_FORMAT_NV15 DRM_FORMAT_NV15 +#endif #define GST_CAT_DEFAULT gst_wl_videoformat_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); @@ -83,6 +86,7 @@ {WL_SHM_FORMAT_NV16, DRM_FORMAT_NV16, GST_VIDEO_FORMAT_NV16}, {WL_SHM_FORMAT_NV61, DRM_FORMAT_NV61, GST_VIDEO_FORMAT_NV61}, {WL_SHM_FORMAT_P010, DRM_FORMAT_P010, GST_VIDEO_FORMAT_P010_10LE}, + {WL_SHM_FORMAT_NV15, DRM_FORMAT_NV15, GST_VIDEO_FORMAT_NV12_10LE40}, {WL_SHM_FORMAT_YUV410, DRM_FORMAT_YUV410, GST_VIDEO_FORMAT_YUV9}, {WL_SHM_FORMAT_YVU410, DRM_FORMAT_YVU410, GST_VIDEO_FORMAT_YVU9}, {WL_SHM_FORMAT_YUV411, DRM_FORMAT_YUV411, GST_VIDEO_FORMAT_Y41B},
View file
gst-plugins-bad-1.24.8.tar.xz/gst-libs/gst/wayland/gstwlvideoformat.h -> gst-plugins-bad-1.24.9.tar.xz/gst-libs/gst/wayland/gstwlvideoformat.h
Changed
@@ -37,13 +37,13 @@ * Since: 1.24 */ #if G_BYTE_ORDER == G_BIG_ENDIAN -#define GST_WL_VIDEO_FORMATS "{ AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, v308, " \ - "RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, " \ - "I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }" +#define GST_WL_VIDEO_FORMATS "{ AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, " \ + "NV12_10LE40, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, " \ + "YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }" #elif G_BYTE_ORDER == G_LITTLE_ENDIAN -#define GST_WL_VIDEO_FORMATS "{ AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, v308, " \ - "RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, " \ - "I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }" +#define GST_WL_VIDEO_FORMATS "{ AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, " \ + "NV12_10LE40, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, " \ + "YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }" #endif GST_WL_API
View file
gst-plugins-bad-1.24.8.tar.xz/gst-plugins-bad.doap -> gst-plugins-bad-1.24.9.tar.xz/gst-plugins-bad.doap
Changed
@@ -35,6 +35,16 @@ <release> <Version> + <revision>1.24.9</revision> + <branch>1.24</branch> + <name></name> + <created>2024-10-30</created> + <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.24.9.tar.xz" /> + </Version> + </release> + + <release> + <Version> <revision>1.24.8</revision> <branch>1.24</branch> <name></name>
View file
gst-plugins-bad-1.24.8.tar.xz/gst/codectimestamper/gstcodectimestamper.c -> gst-plugins-bad-1.24.9.tar.xz/gst/codectimestamper/gstcodectimestamper.c
Changed
@@ -506,7 +506,12 @@ static gint pts_compare_func (const GstClockTime * a, const GstClockTime * b) { - return (*a) - (*b); + if (*a < *b) + return -1; + else if (*a > *b) + return 1; + else + return 0; } static GstFlowReturn
View file
gst-plugins-bad-1.24.8.tar.xz/gst/mpegtsdemux/mpegtspacketizer.c -> gst-plugins-bad-1.24.9.tar.xz/gst/mpegtsdemux/mpegtspacketizer.c
Changed
@@ -2261,10 +2261,24 @@ PACKETIZER_GROUP_LOCK (packetizer); pcrtable = get_pcr_table (packetizer, pcr_pid); - if (!GST_CLOCK_TIME_IS_VALID (pcrtable->base_time) && pcr_pid == 0x1fff && - GST_CLOCK_TIME_IS_VALID (packetizer->last_in_time)) { - pcrtable->base_time = packetizer->last_in_time; - pcrtable->base_pcrtime = pts; + if (pcr_pid == 0x1fff && GST_CLOCK_TIME_IS_VALID (packetizer->last_in_time)) { + if (!GST_CLOCK_TIME_IS_VALID (pcrtable->base_time)) { + pcrtable->base_time = packetizer->last_in_time; + pcrtable->base_pcrtime = pts; + } else if (check_diff) { + /* Handle discont and wraparound */ + guint64 tmp_pts = pts + pcrtable->pcroffset + packetizer->extra_shift; + if (pcrtable->base_pcrtime < tmp_pts + && tmp_pts - pcrtable->base_pcrtime >= 5 * GST_SECOND) { + guint64 diff = tmp_pts - pcrtable->base_pcrtime - 2 * GST_SECOND; + + pcrtable->base_time += diff; + pcrtable->base_pcrtime += diff; + } else if (pcrtable->base_pcrtime > tmp_pts + && pcrtable->base_pcrtime > PCR_GST_MAX_VALUE / 2) { + pcrtable->pcroffset += PCR_GST_MAX_VALUE; + } + } } /* Use clock skew if present */
View file
gst-plugins-bad-1.24.8.tar.xz/gst/rtmp2/gstrtmp2sink.c -> gst-plugins-bad-1.24.9.tar.xz/gst/rtmp2/gstrtmp2sink.c
Changed
@@ -533,8 +533,8 @@ self->running = TRUE; self->cancellable = g_cancellable_new (); self->stream_id = 0; - self->last_ts = 0; - self->base_ts = 0; + self->last_ts = GST_CLOCK_TIME_NONE; + self->base_ts = GST_CLOCK_TIME_NONE; if (async) { gst_task_start (self->task); @@ -700,27 +700,31 @@ /* flvmux timestamps roll over after about 49 days */ timestamp = header.timestamp; - if (timestamp + self->base_ts + G_MAXINT32 < self->last_ts) { - GST_WARNING_OBJECT (self, "Timestamp regression %" G_GUINT64_FORMAT - " -> %" G_GUINT64_FORMAT "; assuming overflow", self->last_ts, - timestamp + self->base_ts); - self->base_ts += G_MAXUINT32; - self->base_ts += 1; - } else if (timestamp + self->base_ts > self->last_ts + G_MAXINT32) { - GST_WARNING_OBJECT (self, "Timestamp jump %" G_GUINT64_FORMAT - " -> %" G_GUINT64_FORMAT "; assuming underflow", self->last_ts, - timestamp + self->base_ts); - if (self->base_ts > 0) { - self->base_ts -= G_MAXUINT32; - self->base_ts -= 1; - } else { - GST_WARNING_OBJECT (self, "Cannot regress further;" - " forcing timestamp to zero"); - timestamp = 0; + if (self->base_ts == GST_CLOCK_TIME_NONE) { + self->last_ts = self->base_ts = timestamp; + } else { + if (timestamp + self->base_ts + G_MAXINT32 < self->last_ts) { + GST_WARNING_OBJECT (self, "Timestamp regression %" G_GUINT64_FORMAT + " -> %" G_GUINT64_FORMAT "; assuming overflow", self->last_ts, + timestamp + self->base_ts); + self->base_ts += G_MAXUINT32; + self->base_ts += 1; + } else if (timestamp + self->base_ts > self->last_ts + G_MAXINT32) { + GST_WARNING_OBJECT (self, "Timestamp jump %" G_GUINT64_FORMAT + " -> %" G_GUINT64_FORMAT "; assuming underflow", self->last_ts, + timestamp + self->base_ts); + if (self->base_ts > 0) { + self->base_ts -= G_MAXUINT32; + self->base_ts -= 1; + } else { + GST_WARNING_OBJECT (self, "Cannot regress further;" + " forcing timestamp to zero"); + timestamp = 0; + } } + timestamp += self->base_ts; + self->last_ts = timestamp; } - timestamp += self->base_ts; - self->last_ts = timestamp; gst_buffer_unmap (buffer, &info); }
View file
gst-plugins-bad-1.24.8.tar.xz/gst/videofilters/gstscenechange.c -> gst-plugins-bad-1.24.9.tar.xz/gst/videofilters/gstscenechange.c
Changed
@@ -60,7 +60,7 @@ * terms of accuracy, schro's implementation has about 2-3 false positives * or false negatives per 100 scene changes. This implementation has * about 5 per 100. The threshold is tuned for minimum total false - * positives or negatives, on the assumption that the badness of a + * positives or negatives, on the assumption that the badness of a * false negative is the same as a false positive. * * This algorithm is pretty much at its limit for error rate. I @@ -92,6 +92,7 @@ static GstFlowReturn gst_scene_change_transform_frame_ip (GstVideoFilter * filter, GstVideoFrame * frame); +static gboolean gst_scenechange_stop (GstBaseTransform * base); #undef TESTING #ifdef TESTING @@ -119,6 +120,7 @@ gst_scene_change_class_init (GstSceneChangeClass * klass) { GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass); + GstBaseTransformClass *trans_class = GST_BASE_TRANSFORM_CLASS (klass); gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass), gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, @@ -135,6 +137,7 @@ video_filter_class->transform_frame_ip = GST_DEBUG_FUNCPTR (gst_scene_change_transform_frame_ip); + trans_class->stop = GST_DEBUG_FUNCPTR (gst_scenechange_stop); } static void @@ -142,7 +145,6 @@ { } - static double get_frame_score (GstVideoFrame * f1, GstVideoFrame * f2) { @@ -259,10 +261,15 @@ return GST_FLOW_OK; } +static gboolean +gst_scenechange_stop (GstBaseTransform * base) +{ + GstSceneChange *scenechange = GST_SCENE_CHANGE (base); + gst_clear_buffer (&scenechange->oldbuf); - - + return TRUE; +} #ifdef TESTING /* This is from ds's personal collection. No, you can't have it. */
View file
gst-plugins-bad-1.24.8.tar.xz/meson.build -> gst-plugins-bad-1.24.9.tar.xz/meson.build
Changed
@@ -1,5 +1,5 @@ project('gst-plugins-bad', 'c', 'cpp', - version : '1.24.8', + version : '1.24.9', meson_version : '>= 1.1', default_options : 'warning_level=1', 'buildtype=debugoptimized' ) @@ -398,6 +398,17 @@ cdata.set('HAVE_X11', 1) endif +# Optional dep of msdk and va +if host_system not in 'darwin', 'ios', 'android', 'windows' + libdrm_dep = dependency('libdrm', version : '>=2.4.50', + required : get_option('drm').enabled() or get_option('msdk').enabled(), + ) + cdata.set('HAVE_LIBDRM', libdrm_dep.found()) +else + libdrm_dep = dependency('', required: false) +endif + + # # Solaris and Illumos distros split a lot of networking-related code # into '-lsocket -lnsl'. Anything that calls socketpair(), getifaddr(),
View file
gst-plugins-bad-1.24.8.tar.xz/po/gst-plugins-bad-1.0.pot -> gst-plugins-bad-1.24.9.tar.xz/po/gst-plugins-bad-1.0.pot
Changed
@@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad-1.24.8\n" +"Project-Id-Version: gst-plugins-bad-1.24.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-19 12:02+0200\n" +"POT-Creation-Date: 2024-10-30 20:34+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
View file
gst-plugins-bad-1.24.8.tar.xz/po/gst-plugins-bad.pot -> gst-plugins-bad-1.24.9.tar.xz/po/gst-plugins-bad.pot
Changed
@@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad-1.24.8\n" +"Project-Id-Version: gst-plugins-bad-1.24.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-19 12:02+0200\n" +"POT-Creation-Date: 2024-10-30 20:34+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
View file
gst-plugins-bad-1.24.8.tar.xz/sys/applemedia/avfdeviceprovider.m -> gst-plugins-bad-1.24.9.tar.xz/sys/applemedia/avfdeviceprovider.m
Changed
@@ -115,6 +115,7 @@ result = g_list_prepend (result, gst_object_ref_sink (gst_device)); gst_structure_free (props); + gst_caps_unref (caps); } result = g_list_reverse (result);
View file
gst-plugins-bad-1.24.8.tar.xz/sys/applemedia/vtdec.c -> gst-plugins-bad-1.24.9.tar.xz/sys/applemedia/vtdec.c
Changed
@@ -1384,6 +1384,10 @@ case 51: case 52: return 184320; + case 60: + case 61: + case 62: + return 696320; default: GST_ERROR_OBJECT (vtdec, "unknown level %d", level); return -1;
View file
gst-plugins-bad-1.24.8.tar.xz/sys/kms/gstkmsallocator.c -> gst-plugins-bad-1.24.9.tar.xz/sys/kms/gstkmsallocator.c
Changed
@@ -122,7 +122,7 @@ /* Overwrite the video info's stride and offset using the pitch calculcated * by the kms driver. */ stride = gst_video_format_info_extrapolate_stride (vinfo->finfo, i, pitch); - GST_VIDEO_INFO_PLANE_STRIDE (vinfo, i) = pitch; + GST_VIDEO_INFO_PLANE_STRIDE (vinfo, i) = stride; GST_VIDEO_INFO_PLANE_OFFSET (vinfo, i) = offs; /* Note that we cannot negotiate special padding betweem each planes,
View file
gst-plugins-bad-1.24.8.tar.xz/sys/kms/gstkmssink.c -> gst-plugins-bad-1.24.9.tar.xz/sys/kms/gstkmssink.c
Changed
@@ -481,9 +481,10 @@ kms_open (gchar ** driver) { static const char *drivers = { "i915", "radeon", "nouveau", "vmwgfx", - "exynos", "amdgpu", "imx-drm", "imx-lcdif", "rockchip", "atmel-hlcdc", - "msm", "xlnx", "vc4", "meson", "stm", "sun4i-drm", "mxsfb-drm", "tegra", - "tidss", "xilinx_drm", /* DEPRECATED. Replaced by xlnx */ + "exynos", "amdgpu", "imx-dcss", "imx-drm", "imx-lcdif", "rockchip", + "atmel-hlcdc", "msm", "xlnx", "vc4", "meson", "stm", "sun4i-drm", + "mxsfb-drm", "tegra", "tidss", + "xilinx_drm", /* DEPRECATED. Replaced by xlnx */ }; int i, fd = -1;
View file
gst-plugins-bad-1.24.8.tar.xz/sys/msdk/gstmsdkallocator_libva.c -> gst-plugins-bad-1.24.9.tar.xz/sys/msdk/gstmsdkallocator_libva.c
Changed
@@ -32,7 +32,7 @@ #include <va/va.h> #include <va/va_drmcommon.h> -#include <libdrm/drm_fourcc.h> +#include <drm_fourcc.h> #include <unistd.h> #include "gstmsdkallocator.h" #include "gstmsdkallocator_libva.h"
View file
gst-plugins-bad-1.24.8.tar.xz/sys/msdk/gstmsdkcaps.c -> gst-plugins-bad-1.24.9.tar.xz/sys/msdk/gstmsdkcaps.c
Changed
@@ -32,7 +32,7 @@ #include "gstmsdkcaps.h" #ifndef _WIN32 -#include <libdrm/drm_fourcc.h> +#include <drm_fourcc.h> #include <gst/video/video-info-dma.h> #include "gstmsdkallocator_libva.h" #include <gst/va/gstvavideoformat.h>
View file
gst-plugins-bad-1.24.8.tar.xz/sys/msdk/gstmsdkdec.c -> gst-plugins-bad-1.24.9.tar.xz/sys/msdk/gstmsdkdec.c
Changed
@@ -41,7 +41,7 @@ #include "gstmsdkcaps.h" #ifndef _WIN32 -#include <libdrm/drm_fourcc.h> +#include <drm_fourcc.h> #include <gst/va/gstvaallocator.h> #include <gst/va/gstvavideoformat.h> #else
View file
gst-plugins-bad-1.24.8.tar.xz/sys/msdk/gstmsdkenc.c -> gst-plugins-bad-1.24.9.tar.xz/sys/msdk/gstmsdkenc.c
Changed
@@ -51,7 +51,7 @@ #include "gstmsdkcaps.h" #ifndef _WIN32 -#include <libdrm/drm_fourcc.h> +#include <drm_fourcc.h> #include "gstmsdkallocator_libva.h" #include <gst/va/gstvaallocator.h> #else
View file
gst-plugins-bad-1.24.8.tar.xz/sys/msdk/gstmsdkvpp.c -> gst-plugins-bad-1.24.9.tar.xz/sys/msdk/gstmsdkvpp.c
Changed
@@ -60,7 +60,7 @@ #include "gstmsdkallocator.h" #ifndef _WIN32 -#include <libdrm/drm_fourcc.h> +#include <drm_fourcc.h> #include "gstmsdkallocator_libva.h" #include <gst/va/gstvaallocator.h> #include <gst/va/gstvavideoformat.h>
View file
gst-plugins-bad-1.24.8.tar.xz/sys/msdk/gstmsdkvpputil.c -> gst-plugins-bad-1.24.9.tar.xz/sys/msdk/gstmsdkvpputil.c
Changed
@@ -30,7 +30,7 @@ #include "gstmsdkcaps.h" #ifndef _WIN32 -#include <libdrm/drm_fourcc.h> +#include <drm_fourcc.h> #include <gst/va/gstvavideoformat.h> #else #include <gst/d3d11/gstd3d11.h>
View file
gst-plugins-bad-1.24.8.tar.xz/sys/msdk/meson.build -> gst-plugins-bad-1.24.9.tar.xz/sys/msdk/meson.build
Changed
@@ -184,7 +184,6 @@ else libdl_dep = cc.find_library('dl', required: get_option('msdk')) libgudev_dep = dependency('gudev-1.0', required: get_option('msdk'), allow_fallback: true) - libdrm_dep = dependency('libdrm', required: get_option('msdk')) msdk_deps = declare_dependency(dependencies: gstva_dep, libdl_dep, libgudev_dep, libdrm_dep) msdk_deps_found = gstva_dep.found() and libdl_dep.found() and libgudev_dep.found() and libdrm_dep.found() endif
View file
gst-plugins-bad-1.24.8.tar.xz/sys/va/gstvaav1enc.c -> gst-plugins-bad-1.24.9.tar.xz/sys/va/gstvaav1enc.c
Changed
@@ -2325,8 +2325,8 @@ /* not enable it now. */ self->features.enable_warped_motion = FALSE; // (features.bits.support_warped_motion != 0); - self->features.enable_palette_mode = - (features.bits.support_palette_mode != 0); + self->features.enable_palette_mode = FALSE; + // (features.bits.support_palette_mode != 0); self->features.enable_dual_filter = (features.bits.support_dual_filter != 0); self->features.enable_jnt_comp = (features.bits.support_jnt_comp != 0);
View file
gst-plugins-bad-1.24.8.tar.xz/tests/check/elements/h264timestamper.c -> gst-plugins-bad-1.24.9.tar.xz/tests/check/elements/h264timestamper.c
Changed
@@ -128,6 +128,9 @@ GST_BUFFER_PTS (buffer) = 0; fail_unless_equals_int (gst_harness_push (h, buffer), GST_FLOW_OK);; buffer = gst_buffer_new_memdup (h264_idrframe, G_N_ELEMENTS (h264_idrframe)); + GST_BUFFER_PTS (buffer) = 3 * GST_SECOND; + fail_unless_equals_int (gst_harness_push (h, buffer), GST_FLOW_OK);; + buffer = gst_buffer_new_memdup (h264_idrframe, G_N_ELEMENTS (h264_idrframe)); GST_BUFFER_PTS (buffer) = GST_CLOCK_TIME_NONE; fail_unless_equals_int (gst_harness_push (h, buffer), GST_FLOW_OK);; buffer = gst_buffer_new_memdup (h264_idrframe, G_N_ELEMENTS (h264_idrframe));
View file
gst-plugins-bad-1.24.8.tar.xz/tests/check/elements/lc3.c -> gst-plugins-bad-1.24.9.tar.xz/tests/check/elements/lc3.c
Changed
@@ -252,7 +252,7 @@ create_test_buffer (guint64 num, guint64 size) { GstBuffer *buffer; - guint64 *data = g_malloc (sizeof (guint64)); + guint64 *data = g_malloc (size); *data = num;
View file
gst-plugins-bad-1.24.8.tar.xz/tests/check/elements/vapostproc.c -> gst-plugins-bad-1.24.9.tar.xz/tests/check/elements/vapostproc.c
Changed
@@ -62,18 +62,73 @@ GST_END_TEST; +static GstCaps * +get_drmdma_format (void) +{ + GstElement *vpp; + GstCaps *templ, *allowed_caps, *drm_caps = NULL; + GstPad *srcpad; + guint i; + + vpp = gst_element_factory_make ("vapostproc", NULL); + if (!vpp) + return NULL; + srcpad = gst_element_get_static_pad (vpp, "src"); + fail_unless (srcpad != NULL); + templ = gst_pad_get_pad_template_caps (srcpad); + fail_unless (templ != NULL); + + allowed_caps = gst_caps_normalize (templ); + + for (i = 0; i < gst_caps_get_size (allowed_caps); ++i) { + GstStructure *new_structure; + GstStructure *structure; + + /* non-dmabuf caps don't describe drm-format: skip them */ + structure = gst_caps_get_structure (allowed_caps, i); + if (!gst_structure_has_field (structure, "drm-format")) + continue; + + drm_caps = gst_caps_new_empty (); + new_structure = gst_structure_copy (structure); + gst_structure_set (new_structure, "framerate", GST_TYPE_FRACTION, + 1, 1, NULL); + gst_structure_remove_field (new_structure, "width"); + gst_structure_remove_field (new_structure, "height"); + gst_caps_append_structure (drm_caps, new_structure); + gst_caps_set_features_simple (drm_caps, + gst_caps_features_new_single ("memory:DMABuf")); + + GST_DEBUG ("have caps %" GST_PTR_FORMAT, drm_caps); + /* should be fixed without width/height */ + fail_unless (gst_caps_is_fixed (drm_caps)); + break; + } + + gst_caps_unref (allowed_caps); + gst_object_unref (srcpad); + gst_object_unref (vpp); + + return drm_caps; +} + GST_START_TEST (dmabuf_copy) { GstHarness *h; GstBuffer *buf, *buf_copy; gboolean ret; + GstCaps *drm_caps; h = gst_harness_new_parse ("videotestsrc num-buffers=1 ! " "video/x-raw, width=(int)1024, height=(int)768 ! vapostproc"); ck_assert (h); - gst_harness_set_sink_caps_str (h, - "video/x-raw(memory:DMABuf), format=(string)NV12, width=(int)3840, height=(int)2160"); + drm_caps = get_drmdma_format (); + ck_assert (drm_caps); + gst_caps_set_simple (drm_caps, "width", G_TYPE_INT, 1600, "height", + G_TYPE_INT, 1200, NULL); + + gst_harness_set_sink_caps (h, drm_caps); gst_harness_add_propose_allocation_meta (h, GST_VIDEO_META_API_TYPE, NULL); gst_harness_play (h);
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.