Projects
home:zaitor:branches:Essentials
gstreamer-plugins-bad-codecs
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Difference Between Revision 5 and
Essentials
/
gstreamer-plugins-bad-codecs
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
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>
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
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,
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
.