X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=subprojects%2Fgst-plugins-bad%2FChangeLog;h=f471789cd195de10182fc3f502763637c612c470;hb=d51b091cd99d08b689563266a078f33345817a45;hp=944e7f8d32b7bb36c4d4ae1e5f201bfe0b18a7ef;hpb=c7253318b318b6a56ef11fc4da24ab2d9d8266bb;p=platform%2Fupstream%2Fgstreamer.git diff --git a/subprojects/gst-plugins-bad/ChangeLog b/subprojects/gst-plugins-bad/ChangeLog index 944e7f8..f471789 100644 --- a/subprojects/gst-plugins-bad/ChangeLog +++ b/subprojects/gst-plugins-bad/ChangeLog @@ -1,3 +1,2096 @@ +2021-11-02 09:40:43 -0400 Nicolas Dufresne + + * gst-libs/gst/codecs/gstmpeg2decoder.c: + codecs: mpeg2: Drain before a new_sequence get signalled + The decoder may need to re-allocate the output buffer, it is easier if all + pictured have been outputed. + Part-of: + +2021-04-08 16:24:49 -0300 Daniel Almeida + + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + v4l2codecs: gstv4l2codecsmpeg2dec: implement a render delay + The v4l2 backend support delayed output for performance reasons. + It is then possible to use render delays to queue multiple requests + simultaneously, thus increasing performance. + Part-of: + +2021-04-08 16:07:23 -0300 Daniel Almeida + + * gst-libs/gst/codecs/gstmpeg2decoder.c: + * gst-libs/gst/codecs/gstmpeg2decoder.h: + codecs: gstmpeg2decoder: add support for render delay + Some decoding APIs support delayed output for performance reasons. + One example would be to request decoding for multiple frames and + then query for the oldest frame in the output queue. + This also increases throughput for transcoding and improves seek + performance when supported by the underlying backend. + Introduce support in the mpeg2 base class, so that backends that + support render delays can actually implement it. + Part-of: + +2021-04-06 16:40:28 -0300 Daniel Almeida + + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + * sys/v4l2codecs/gstv4l2codecmpeg2dec.h: + * sys/v4l2codecs/meson.build: + * sys/v4l2codecs/plugin.c: + v4l2codecs: Implement a MPEG2 V4L2 decoder element + Implement a MPEG2 V4L2 decoder element based on the previous h264 + implementation. + Part-of: + +2021-04-06 16:42:54 -0300 Daniel Almeida + + * sys/v4l2codecs/linux/videodev2.h: + v4l2codecs: mpeg2: update to the new uAPI + The mpeg2 stateless api has undergone changes as it is being + destage. Update the v4l2-controls header to match. + Part-of: + +2021-03-26 15:52:21 -0300 Daniel Almeida + + * sys/va/gstvampeg2dec.c: + sys: va: GstVaMpeg2Dec: use slice sc_offset and size + Seeing as how GstMpeg2Slice will now record the start code offset + as well as its size with the above field taken into account, the + manual computation in this class is not needed. + Remove it. + Part-of: + +2021-03-26 15:31:51 -0300 Daniel Almeida + + * gst-libs/gst/codecs/gstmpeg2decoder.c: + * gst-libs/gst/codecs/gstmpeg2picture.h: + codecs: GstMpeg2Slice: add field for sc_offset and size + Downstream might need the start code offset when decoding. + Previously this computation would be scattered in multiple sites. This + is error prone, so move it to the base class. Subclasses can access + slice->sc_offset directly without computing the address themselves + knowing that the size will also take the start code into account. + Part-of: + +2021-10-20 12:11:49 +0100 James Cowgill + + * sys/v4l2codecs/gstv4l2codech264dec.c: + * sys/v4l2codecs/gstv4l2codecvp8dec.c: + v4l2codecs: Handle allocator creation failure + If `VIDIOC_REQBUFS` doesn't return enough buffers the allocator creation + function can fail and return `NULL`. Handle this by generating an error + and returning instead of segfaulting. + Part-of: + +2021-10-20 12:08:49 +0100 James Cowgill + + * sys/v4l2codecs/gstv4l2codecallocator.c: + v4l2codecs: Fix segfault when destroying non-detached allocator + The GstV4l2CodecAllocator dispose function clears `self->decoder` but + the finalize function then tries to use it if the allocator has no been + detached yet. + Fix by detaching in the dispose function before we clear + `self->decoder`. + Part-of: + +2021-10-29 16:08:20 -0400 Julian Bouzas + + * gst/codecalpha/gstalphacombine.c: + alphacombine: use the same allocation query data for both decoders + This allows downstream elements to set allocation query parameters for both + decoders, which should be always the same. + Part-of: + +2021-10-31 13:43:40 +0530 Nirbheek Chauhan + + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + applemedia: Add ARGB64_BE, RGBA64_LE support to vtenc/vtdec + We can add this now that ARGB64_BE videoconvert support was added in: + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1247 + Part-of: + +2021-10-20 02:19:33 +0530 Nirbheek Chauhan + + * sys/applemedia/vtenc.c: + * sys/applemedia/vtenc.h: + vtenc: Add FieldDetail properties for interlaced input + Standard interlace handling: + * If we have interlace-mode=interleaved and the field order, we just + set it when creating the session + * If we have interlace-mode=(interleaved|mixed) and no field order, we + set the field order on the first buffer + The encoder session does not support changing the FieldDetail after it + has started encoding frames, so we cannot support mixed streams + correctly. + Part-of: + +2021-10-20 01:49:29 +0530 Nirbheek Chauhan + + * sys/applemedia/vtenc.c: + * sys/applemedia/vtenc.h: + vtenc: Add a property to forcibly ignore alpha values + This PropertyKey is not documented in any headers anywhere, so we need + to define it ourselves. + Part-of: + +2021-10-19 23:53:39 +0530 Nirbheek Chauhan + + * sys/applemedia/vtenc.c: + vtenc: Set colorimetry information + It looks like VideoToolbox doesn't support all our colorimetries. + Part-of: + +2021-10-17 18:54:10 +0530 Nirbheek Chauhan + + * sys/applemedia/coremediabuffer.h: + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + * sys/applemedia/vtenc.h: + * sys/applemedia/vtutil.c: + * sys/applemedia/vtutil.h: + applemedia: Add ProRes support to vtenc and vtdec + For vtdec, we continue to prefer NV12; else we pick whatever + downstream wants. In the special case where we're decoding 10-bit or + 12-bit ProRes formats, we will prefer AYUV64. + Part-of: + +2021-10-17 19:19:15 +0530 Nirbheek Chauhan + + * sys/applemedia/vtenc.c: + vtenc: Improve error reporting in chain function + Otherwise it is quite difficult to figure out why the chain function + failed. Also assert not reached for case statements that should not be + hit. + Part-of: + +2021-10-14 12:14:49 +0530 Nirbheek Chauhan + + * sys/applemedia/vtdec.c: + vtdec: Remove dead code in switch statement + We never advertise these formats, so these cases will never be hit. + Part-of: + +2021-10-30 16:22:39 +0300 Sebastian Dröge + + * docs/plugins/gst_plugins_cache.json: + video: Fix order of new video formats + Part-of: + +2021-10-30 00:58:55 +0100 Tim-Philipp Müller + + * gst/mpegtsmux/gstatscmux.c: + * gst/mpegtsmux/gstbasetsmux.c: + * gst/mpegtsmux/gstmpegtsmux.c: + Couple more g_memdup() -> g_memdup2() fixes + Fixes deprecation warnings with newer GLib versions. + Part-of: + +2021-10-30 00:52:42 +0100 Tim-Philipp Müller + + * ext/dtls/gstdtlssrtpenc.c: + dtls: don't use deprecated g_binding_get_source() with newer GLib versions + Part-of: + +2021-10-30 01:41:51 +0900 Seungha Yang + + * gst-libs/gst/codecs/gsth265decoder.c: + codecs: h265decoder: Fix per-slice leak + As documented, slice header parsed via gst_h265_parser_parse_slice_hdr() + should be cleared, otherwise it would result in memory leak. + Part-of: + +2021-10-26 16:05:24 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvah264dec.c: + * sys/va/gstvah265dec.c: + * sys/va/gstvampeg2dec.c: + * sys/va/gstvavp8dec.c: + * sys/va/gstvavp9dec.c: + va: Delay decoders downstream negotiation. + Delay decoders downstream negotiation just before an output frame + needs to be allocated. + This is required, are least for H.264 and H.265 decoders, since + codec_data might trigger a new sequence before finishing upstream + negotiation, and sink pad caps need to set before setting source pad + caps, particularly to forward HDR fields. The other decoders are + changed too in order to keep the same structure among them. + Part-of: + +2021-10-26 09:41:53 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvabasedec.c: + vabasedec: Move warning message to decoder's category. + Part-of: + +2021-10-26 09:28:10 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaav1dec.c: + * sys/va/gstvabasedec.h: + * sys/va/gstvah264dec.c: + * sys/va/gstvah265dec.c: + * sys/va/gstvampeg2dec.c: + * sys/va/gstvavp8dec.c: + * sys/va/gstvavp9dec.c: + va: Move common variable need_negotiation to GstBaseDec. + This is a common variable to all decoders, so it's sound to move it to + the base helper. + Part-of: + +2021-10-26 09:23:42 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaav1dec.c: + * sys/va/gstvabasedec.c: + * sys/va/gstvabasedec.h: + * sys/va/gstvah264dec.c: + * sys/va/gstvah265dec.c: + * sys/va/gstvampeg2dec.c: + * sys/va/gstvavp8dec.c: + * sys/va/gstvavp9dec.c: + va: Move back parent_object to each element. + Using GstBaseDec hack to access the parent_object of each element in + the element itself is a bit fragile. It would be better to keep its + own parent object as the usual global variable. It would make it + resistant to code changes. + The GstBaseDec macro to access the parent object now it's internal to + base decoder. + Part-of: + +2021-10-23 00:44:57 +0200 Piotrek Brzeziński + + * docs/plugins/gst_plugins_cache.json: + video-format: Add support for ARGB64 LE/BE and similar variants + Co-authored-by: Sebastian Dröge + Part-of: + +2021-09-26 21:34:30 +0200 Heiko Becker + + * ext/neon/meson.build: + neon: Allow building against neon 0.32.x + No API/ABI changes: https://github.com/notroj/neon/blob/0.32.0/NEWS#L3 + Part-of: + +2021-10-25 11:37:45 +0100 Tim-Philipp Müller + + * meson.build: + meson: require matching GStreamer dep versions for unstable development releases + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/929 + Part-of: + +2021-10-27 00:20:57 +0200 Mathieu Duponchelle + + * ext/webrtc/gstwebrtcbin.c: + * ext/webrtc/webrtctransceiver.c: + webrtcbin: fix check_negotiation computing on caps event + It seems logical that check_negotiation be true if received_caps + is *not* equal to the new caps. + Also clean up handling of transceivers' ssrc events, as this + patch triggered a leaky code path. + Part-of: + +2021-10-23 01:54:05 +0200 Mathieu Duponchelle + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: connect input stream when receiving caps + .. if a current direction has already been set + When `webrtcbin` has created an offer based on codec_preferences, + it might not have received caps on its sinkpads by the time a + remote description is set, in which case we want to connect the + input stream upon actual reception of the caps instead. + Part-of: + +2021-10-18 15:23:48 +0200 Mathieu Duponchelle + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: consider pads with trans->codec_preferences ready + .. when determining whether we can emit on-negotiation-needed + Part-of: + +2021-10-28 17:41:54 +0100 Tim-Philipp Müller + + * gst/videoparsers/gstmpeg4videoparse.c: + mpeg4videoparse: fix criticals trying to insert configs that don't exist yet + With mpeg4videoparse drop=false config-interval=N|-1 we might be + trying to insert a config before we have actually received one, + in which case we'll try to map a NULL buffer which will generate + lots of criticals. + Fixes #855 + Part-of: + +2021-10-20 17:46:10 +0800 Mengkejiergeli Ba + + * sys/msdk/gstmsdkh265enc.c: + msdk: Insert hdr sei at hevc encoder + There are two HDR SEIs defined in spec: mastering display colour volume and + content light level. Add insertion of HDR SEIs when they are available + during encoding. + Part-of: + +2021-10-21 16:12:06 +0100 Rob Agar + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Also check data channel transport when collating connection state + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/838 + Part-of: + +2021-10-27 11:54:09 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Color fixation will choose othercaps' structure. + gst_va_fixate_format() will iterate all othercaps' structures to find + the one with less information lost at color conversion. If a structure + with same color format is found, the iteration stops. It's like a + smart truncation. Then, this function also will choose the caps + feature. + Later this structure is used fixate its size and no further truncation + is needed. + Don't intersect at fixate, since it kills possible resizing. + Part-of: + +2021-10-27 11:53:28 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Ignore direction at orientation swapping. + It doesn't matter the direction of the negotiation. + Part-of: + +2021-10-27 10:31:04 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Consider video orientation for border calculation. + Part-of: + +2021-10-06 16:00:56 +0200 Timo Wischer + + * ext/avtp/gstavtpsrc.c: + avtpsrc: Retry receive with same buffer size + Without this patch in case of a retry recv() will be called with a + negative size argument. + Signed-off-by: Timo Wischer + Part-of: + +2021-10-26 16:00:36 +0200 Mathieu Duponchelle + + * ext/closedcaption/gstcccombiner.c: + cccombiner: fix default value when installing schedule property + Part-of: + +2021-10-26 15:58:26 +0200 Mathieu Duponchelle + + * ext/closedcaption/gstcccombiner.c: + cccombiner: fix emission of selected-samples in one case + Detected while reading the code, cccombiner must set + self->current_video_buffer to NULL *after* emitting selected-samples + in order for the application to get a useful return when peeking + the next video sample. + Part-of: + +2021-10-26 01:09:58 +0200 Mathieu Duponchelle + + * ext/closedcaption/gstcccombiner.c: + * tests/check/elements/cccombiner.c: + cccombiner: stop attaching caption buffers when caption pad has gone EOS + When schedule is true (as is the case by default), we insert padding + when no caption data is present in the schedule queue, and previously + weren't checking whether the caption pad had gone EOS, leading to + infinite scheduling of padding after EOS on the caption pad. + Rectify that by adding a "drain" parameter to dequeue_caption() + In addition, update the captions_and_eos test to push valid cc_data + in: without this cccombiner was attaching padding buffers it had + generated itself, and with that patch would now stop attaching + said padding to the second buffer. By pushing valid, non-padding + cc_data we ensure a caption buffer is indeed attached to the first + and second video buffers. + Part-of: + +2021-10-20 13:19:00 +0200 Mats Lindestam + + * ext/curl/gstcurlsshsink.c: + * ext/curl/gstcurlsshsink.h: + * tests/check/elements/curlsftpsink.c: + curlsftpsink: Add support for sha256 fingerprint + Part-of: + +2021-10-21 11:09:07 +0800 Mengkejiergeli Ba + + * sys/msdk/gstmsdkvpp.c: + msdkvpp: Add 12bit formats + Add 12bit formats for different chroma samplings at sink pad and + src pad, including P012_LE, Y212_LE and Y412_LE. + Part-of: + +2021-10-25 18:52:24 +0200 Floris + + * ext/gs/README.md: + gs: update README to use fixed versions + Use specific versions, instead of relying on 'master'. + Part-of: + +2021-10-25 18:47:46 +0200 Floris + + * ext/gs/gstgssrc.cpp: + gssrc: use default blocksize + The blocksize is set to 3 * 1024 * 1024 / 2, which is the default download_size of Google-Cloud-CPP. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/846 + Part-of: + +2021-10-25 16:53:14 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvah265dec.c: + vah265dec: Fix end_picture() vmethod. + Since commit 88437a9c the signature of h265decoder's end_picture() + changed to return GstFlowReturn, but vah265dec was not updated. + This commit fixes this regression. + Part-of: + +2021-10-12 17:32:30 +0800 Mengkejiergeli Ba + + * sys/va/gstvaallocator.c: + va: allocator: Fix possible memory leaks + At gst_va_dmabuf_allocator_setup_buffer_full, static code analysis tool + does not know number of objects in descriptor is always larger than 0 if + export_surface_to_dmabuf succeeds. Thus, the tool will assume buf is + allocated with mem but not released when desc.num_objects equals to 0 + and raise a mem leak issue. + For gst_va_dambuf_memories_setup, we should also inform the tool that + n_planes will be larger than 0 by checking the value at very beginning. + Then, the defect similar to above will not be raised during static analysis. + Part-of: + +2021-10-25 01:02:28 +0100 Tim-Philipp Müller + + * po/af.po: + * po/ast.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/el.po: + * po/en_GB.po: + * po/eo.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/fur.po: + * po/gl.po: + * po/hr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ro.po: + * po/ru.po: + * po/sk.po: + * po/sl.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * po/zh_TW.po: + gst-plugins-bad: update translations + Fixes #656 + Part-of: + +2021-10-23 19:26:06 +0200 Andoni Morales Alastruey + + * gst-libs/gst/d3d11/gstd3d11device.cpp: + d3d11: add support for new debug layer versions + Part-of: + +2021-01-20 12:04:48 +0100 Rafał Dzięgiel + + * ext/assrender/gstassrender.c: + assrender: Add "application/vnd.ms-opentype" mimetype detection + The "application/vnd.ms-opentype" mimetype is commonly used in many fonts attached in the matroska videos. + Assrender should treat it as compatible without the need of parsing the file extension. + Part-of: + +2021-10-22 18:13:46 +0200 Stéphane Cerveau + + * ext/openjpeg/meson.build: + wrap: libopenjp2: use patch version 7 + Add support for win32 build + Disable the binary to avoid the thirdparty + dependency to be checked. + Part-of: + +2021-10-21 23:35:41 -0300 Martin Reboredo + + * gst-libs/gst/vulkan/gstvkutils.c: + * gst-libs/gst/vulkan/gstvkutils.h: + gstvulkan: Constify code in create_shader + Part-of: + +2021-10-21 00:33:06 +0100 Tim-Philipp Müller + + * meson_options.txt: + meson: default to gpl=disabled for gst-plugins-bad and -ugly + This will only affect individual/tarball module builds, as the + options yield to the parent project which was set to gpl=disabled + by default already. We kept it as auto in the original commit + to accommodate the need to update cerbero as well, which had to + be done separately after the initial commit. + Part-of: + +2021-01-20 13:38:03 +0100 Rafał Dzięgiel + + * ext/assrender/gstassrender.c: + assrender: Do not iterate over mimetypes without filename + No point spending time on iterating and comparing strings if we + are going to reject the value due to missing filename anyway. + Part-of: + +2021-01-20 11:46:17 +0100 Rafał Dzięgiel + + * ext/assrender/gstassrender.c: + assrender: Fix mimetype detection + Previously gst_structure_has_name was used to get a string to compare with supported mimetypes. + This is incorrect as above function returns a user defined structure name which is + not the structure mimetype value. + Part-of: + +2021-10-21 19:17:18 +1100 Matthew Waters + + * gst-libs/gst/vulkan/gstvkdebug.c: + * gst-libs/gst/vulkan/gstvkdebug.h: + * gst-libs/gst/vulkan/gstvkswapper.c: + vulkan/swapper: add some debug logging for surface size and present modes + Part-of: + +2021-10-21 00:28:25 +0200 Jan Alexander Steffens (heftig) + + * gst/interlace/gstinterlace.c: + interlace: Replace custom lock with object lock + The object lock is sufficient for the task of protecting against + object property data races. + Part-of: + +2021-10-21 00:37:47 +0200 Jan Alexander Steffens (heftig) + + * gst/interlace/gstinterlace.c: + interlace: Protect all properties with the lock + Avoid blatant data races here. + Part-of: + +2021-10-21 00:36:47 +0200 Jan Alexander Steffens (heftig) + + * gst/interlace/gstinterlace.c: + interlace: Reset src_fps_d together with src_fps_n + These fields belong together. + Part-of: + +2021-10-21 00:35:00 +0200 Jan Alexander Steffens (heftig) + + * gst/interlace/gstinterlace.c: + interlace: Clear stored_fields together with stored_frame + These fields belong together. + Part-of: + +2021-10-21 00:31:24 +0200 Jan Alexander Steffens (heftig) + + * gst/interlace/gstinterlace.c: + interlace: Reset after changing state to READY + Trying to reset before the pads have been deactivated races with the + streaming thread. There was also a buggy buffer clear leaving a dangling + `stored_frame` pointer around. Use `gst_interlace_reset` so this happens + properly. + Part-of: + +2021-10-20 14:34:42 +0200 Mathieu Duponchelle + + * docs/plugins/gst_plugins_cache.json: + * sys/nvcodec/gstnvenc.c: + * sys/nvcodec/gstnvh264enc.c: + nvh264enc: add constrained-baseline to the caps profiles + In practice, when baseline is requested from the encoder it + produces constrained baseline, and it is already reflected + in the profile-iop flags. + Part-of: + +2021-10-21 01:47:07 +0900 Seungha Yang + + * sys/mediafoundation/gstmfplatloader.c: + * sys/mediafoundation/meson.build: + mediafoundation: Fix for UWP build + We don't support D3D11 interop for UWP because some APIs + (specifically MFTEnum2) are desktop application only. + However, the code for symbol loading is commonly used by both UWP and WIN32. + Just link GModule unconditionally which is UWP compatible, and simply don't + try to load any library/symbol dynamically when D3D11 interop is unavailable. + Part-of: + +2021-10-20 00:54:26 +0100 Tim-Philipp Müller + + * REQUIREMENTS: + * docs/plugins/gst_plugins_cache.json: + * ext/libmms/gstmms.c: + * ext/libmms/gstmms.h: + * ext/libmms/meson.build: + * ext/meson.build: + * meson_options.txt: + mms: remove mmssrc plugin + Doubtful that anyone still needs that or there are even + any streams left out there. + MMS was deprecated in 2003 (in favour of RTSP) and support for + it was dropped with Microsoft Media Services 2008. + https://en.wikipedia.org/wiki/Microsoft_Media_Server + https://sdp.ppona.com/news2008.html + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/821 + Part-of: + +2021-10-19 18:18:25 +0100 Tim-Philipp Müller + + * sys/msdk/meson.build: + * sys/va/meson.build: + meson: va, msdk: simplify dep.get_variable() use + With recent Meson versions we can just write dep.get_variable('foo') + instead of dep.get_variable(pkgconfig: 'driverdir', internal: 'driverdir'). + Part-of: + +2021-10-18 15:47:00 +0100 Tim-Philipp Müller + + * tests/check/meson.build: + * tests/validate/meson.build: + meson: update for meson.build_root() and .build_source() deprecation + -> use meson.project_build_root() or .global_build_root() instead. + Part-of: + +2021-10-18 00:40:14 +0100 Tim-Philipp Müller + + * docs/meson.build: + * ext/onnx/meson.build: + * ext/opencv/meson.build: + * ext/wayland/meson.build: + * meson.build: + * sys/msdk/meson.build: + * tests/check/meson.build: + meson: update for dep.get_pkgconfig_variable() deprecation + ... in favour of dep.get_variable('foo', ..) which in some + cases allows for further cleanups in future since we can + extract variables from pkg-config dependencies as well as + internal dependencies using this mechanism. + Part-of: + +2021-10-18 00:03:47 +0100 Tim-Philipp Müller + + * meson.build: + meson: clean up conditional paths after version bump + Part-of: + +2020-11-19 18:03:11 +0100 Rafał Dzięgiel + + * ext/assrender/gstassrender.c: + assrender: fix smooth scaling by disabling hinting + When ass hinting value is set to anything other than NONE, + subtitles cannot use smooth scaling, thus all animations will jitter. + The libass author warns about possibility of breaking some scripts when it is enabled, + so lets do what is recommended and disable it to get the smooth scaling working. + Part-of: + +2021-05-07 11:11:31 +0200 Jan Alexander Steffens (heftig) + + * ext/srt/gstsrtsink.c: + srt: Plug leak of headers + Part-of: + +2020-08-31 17:17:56 +0200 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/gstbasetsmux.c: + mpegtsmux: Avoid crash when best pad gets flushed + The 'best' pad might receive a flush event between us picking it and us + popping the buffer. In this case, the buffer will be missing. + Similar to https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/711 + Part-of: + +2021-10-17 11:39:57 +0100 Tim-Philipp Müller + + * tools/meson.build: + tools: Define G_LOG_DOMAIN for various tools as well + Part-of: + +2021-10-01 15:31:18 +0100 Tim-Philipp Müller + + * gst-libs/gst/adaptivedemux/meson.build: + * gst-libs/gst/audio/meson.build: + * gst-libs/gst/basecamerabinsrc/meson.build: + * gst-libs/gst/codecparsers/meson.build: + * gst-libs/gst/codecs/meson.build: + * gst-libs/gst/d3d11/meson.build: + * gst-libs/gst/insertbin/meson.build: + * gst-libs/gst/interfaces/meson.build: + * gst-libs/gst/isoff/meson.build: + * gst-libs/gst/mpegts/meson.build: + * gst-libs/gst/opencv/meson.build: + * gst-libs/gst/play/meson.build: + * gst-libs/gst/player/meson.build: + * gst-libs/gst/sctp/meson.build: + * gst-libs/gst/transcoder/meson.build: + * gst-libs/gst/uridownloader/meson.build: + * gst-libs/gst/va/meson.build: + * gst-libs/gst/vulkan/meson.build: + * gst-libs/gst/wayland/meson.build: + * gst-libs/gst/webrtc/meson.build: + * gst-libs/gst/winrt/meson.build: + gst-plugins-bad: define G_LOG_DOMAIN for all libraries + Fixes #634 + Part-of: + +2021-10-06 13:38:35 +0200 Antonio Ospite + + * ext/aes/meson.build: + aes: specify the required OpenSSL version + The code in the aes elements assumes OpenSSL >= 1.1.0: + - implicit library initialization; + - version retrieved with OpenSSL_version(OPENSSL_VERSION); + and it fails to build with older versions. + Specify the required OpenSSL version explicitly in meson.build so that + the elements are excluded on older systems (e.g. Ubuntu 16.04) and the + rest of GStreamer can still build. + Part-of: + +2021-10-11 13:05:24 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvadeinterlace.c: + vadeinterlace: Accept ANY feature. + Part-of: + +2021-10-11 13:04:19 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvadeinterlace.c: + vadeinterlace: Fixate interlace-mode and framerate accordingly. + Part-of: + +2021-10-14 07:03:26 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Accept ANY feature. + Part-of: + +2021-10-13 19:27:41 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Traverse caps features in gst_va_vpp_caps_remove_fields() + The previous code had a potential failure for multiple caps features. Now + each caps feature in each structure is reviewed, and if it has a supported + feature, the structure is processed. + Part-of: + +2021-10-13 17:08:12 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Refactor gst_va_vpp_complete_caps_features() + gst_va_vpp_complete_caps_features() now receives the @feature_name to + add and return if @caps doesn't provide it. + So, instead of two nested loops, now the function is a single loop, + traversing @caps to find if each structure already contains the requested + @features_name. + It's important to add missing caps features with @caps, in order to + not lost information. + The function caller does the external loop by calling per each + available caps feature. + Part-of: + +2021-10-11 18:57:48 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Split caps transform in two phases. + In order to make more readable the caps transformation, the operation + was split in two phases: + 1. Rangify the supported caps structures. + 2. Add the missing (and supported) caps features. + Step 1 modified its logic, by copying any unrecognized structure. + It's a previous step required for allowing ANY caps feature as + passthrough. + Part-of: + +2021-10-08 12:38:04 +0300 Vivia Nikolaidou + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Change many GST_{DEBUG, LOG, etc} into _OBJECT + Log files with several demuxers running at once can otherwise get + confusing + Part-of: + +2021-10-08 12:36:58 +0300 Vivia Nikolaidou + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Issue GST_ELEMENT_WARNING for continuity errors + The application might want to make use of these. + Part-of: + +2021-10-14 18:38:26 +0100 Tim-Philipp Müller + + * meson.build: + meson: bump meson requirement to >= 0.59 + For monorepo build and ugly/bad, for advanced feature + option API like get_option('xyz').required(..) which + we use in combination with the 'gpl' option. + For rest of modules for consistency (people will likely + use newer features based on the top-level requirement). + Part-of: + +2021-09-19 00:55:34 +0100 Tim-Philipp Müller + + * ext/dts/meson.build: + * ext/faad/meson.build: + * ext/iqa/iqa.c: + * ext/iqa/meson.build: + * ext/mpeg2enc/meson.build: + * ext/mplex/meson.build: + * ext/resindvd/meson.build: + * ext/x265/meson.build: + * meson.build: + * meson_options.txt: + meson: add 'gpl' option and only build plugins with (A)GPL deps if explicitly enabled + Require explicit opt-in to build plugins with (A)GPL dependencies. + Keep ugly/bad options on 'auto' for now so cerbero doesn't fail. + Part-of: + +2020-10-30 16:02:22 +0200 Vivia Nikolaidou + + * gst/mpegtsmux/gstbasetsmux.c: + basetsmux: Support for caps changes + Part-of: + +2020-11-12 12:17:14 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/gstbasetsmux.c: + basetsmux: Clean up gst_base_ts_mux_create_stream + Part-of: + +2021-08-31 16:35:06 +0300 Vivia Nikolaidou + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsbase: Search SCTE-35 DRF_ID_CUEI in multiple registration descriptors + There are streams in the wild that have to add a SCTE-35 trigger in + another e.g. GA94 stream. Most encoders would replace the GA94 + descriptor ID with the CUEI one temporarily, but there are some that + will add two registration ID descriptors, one with GA94 and one with + CUEI. + Failing to parse the CUEI registration ID in that case would return + FALSE in _stream_is_private_section , therefore setting it as known PES + and pushing packets downstream instead of calling handle_psi. + Part-of: + +2021-10-01 14:36:48 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Improve gap detection + We should also take into account whether data is currently pending when checking + for gap on streams. It could very well be that some streams have very low + bitrate (and spread out) data. For those we don't want to push out a gap event. + Part-of: + +2021-09-05 11:57:18 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtspacketizer.c: + * gst/mpegtsdemux/mpegtspacketizer.h: + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Handle "negative" timestamps + This is only enabled in push time mode. Furthermore it's only enabled for now if + PCR is to be ignored. + The problem is dealing with streams where the initial PTS/DTS observation might + be greater than following ones (from other PID for example). Before this patch, + this would result in sending buffers without any timestamp which would cause a + wide variety of issues. + Instead, pad segment and buffer timestamps with an extra + value (packetizer->extra_shift, default to 2s), to ensure that we can get valid + timestamps on outgoing buffers (even if that means they are before the segment + start). + Part-of: + +2021-09-05 11:55:55 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Handle streams with bogus PTS vs DTS + PTS and DTS should be within a reasonable distance of each other. + Part-of: + +2021-09-05 11:53:05 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtspacketizer.c: + tsdemux: Handle PTS->TS at wraparound + This has been a FIXME for ages. + Part-of: + +2021-10-14 14:07:07 +0100 Rob Agar + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: fix prevention of webrtcbin deletion due to ref held by probe callback + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/810 + Part-of: + +2021-10-16 19:01:27 +0900 Seungha Yang + + * sys/d3d11/gstd3d11convert.cpp: + d3d11: d3d11{convert,scale}: Add add-borders property + Functionally identical to that of videoscale element. + When disabled, d3d11convert or d3d11scale element will scale + image without adding borders, meaning that display aspect ratio + will not be preserved. + Part-of: + +2021-10-16 10:58:53 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvafilter.c: + * sys/va/gstvafilter.h: + * sys/va/gstvavpp.c: + vapostproc: Add add-borders property to keep dar + Just as videoscale, it enables add-borders property (FALSE by default) + in vapostproc to add border, if necessary, to keep the display aspect + ratio from the original image. + Part-of: + +2021-10-16 10:51:57 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Fix early fixation. + First copy missing fields and then fixate all remaining fields. + Part-of: + +2021-10-14 19:08:49 +0100 Tim-Philipp Müller + + * docs/plugins/gst_plugins_cache.json: + * ext/meson.build: + * ext/ofa/gstofa.c: + * ext/ofa/gstofa.h: + * ext/ofa/meson.build: + * meson_options.txt: + * tests/check/elements/ofa.c: + ofa: remove ofa audio fingerprinting plugin + I think the MusicIP database for this has been defunct for years, + so I can't imagine this plugin is particularly useful or still + used by anyone. + See https://musicbrainz.org/doc/Fingerprinting#PUID + Part-of: + +2021-10-16 22:43:32 +0900 Seungha Yang + + * sys/mediafoundation/meson.build: + * sys/wasapi2/meson.build: + meson: wasapi2,mediafoundation: Work around Windows SDK header issue + Some SDK headers are not standard compliant, so MSVC will + complain when such headers are in use with "/permissive-" compile + option. Use "/Zc:twoPhase-" to work around the issue as documented in + https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-160#windows-header-issues + Part-of: + +2021-10-16 09:29:28 -0300 Thibault Saunier + + * ext/fdkaac/meson.build: + meson: Mark newly fdkaac/ogg/vorbis as allow fallback + This way when the dep is `auto` we will fallback if the system + dependency is not available. + And use https to get libvorbis + Part-of: + +2021-10-16 01:15:06 +0900 Seungha Yang + + * sys/mediafoundation/gstmfplatloader.c: + * sys/mediafoundation/gstmfplatloader.h: + * sys/mediafoundation/gstmftransform.cpp: + * sys/mediafoundation/gstmftransform.h: + * sys/mediafoundation/gstmfvideoenc.cpp: + * sys/mediafoundation/meson.build: + * sys/mediafoundation/plugin.c: + mediafoundation: Use GetProcAddress() for OS version dependent symbols + We are using some symbols which are not available on Windows 7, + specifically D3D11 interop related ones + Part-of: + +2021-10-06 03:26:25 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Transfer colorimetry at fixate if possible. + Taken from videoconvert element. + Part-of: + +2021-10-12 15:52:48 -0300 Thibault Saunier + + * docs/meson.build: + meson: Streamline the way we detect when to build documentation + Part-of: + +2020-06-27 00:39:00 -0400 Thibault Saunier + + * docs/meson.build: + * gst-libs/gst/adaptivedemux/meson.build: + * gst-libs/gst/audio/meson.build: + * gst-libs/gst/basecamerabinsrc/meson.build: + * gst-libs/gst/codecparsers/meson.build: + * gst-libs/gst/codecs/meson.build: + * gst-libs/gst/d3d11/meson.build: + * gst-libs/gst/insertbin/meson.build: + * gst-libs/gst/interfaces/meson.build: + * gst-libs/gst/mpegts/meson.build: + * gst-libs/gst/opencv/meson.build: + * gst-libs/gst/play/meson.build: + * gst-libs/gst/player/meson.build: + * gst-libs/gst/sctp/meson.build: + * gst-libs/gst/transcoder/meson.build: + * gst-libs/gst/uridownloader/meson.build: + * gst-libs/gst/va/meson.build: + * gst-libs/gst/vulkan/meson.build: + * gst-libs/gst/wayland/meson.build: + * gst-libs/gst/webrtc/meson.build: + * meson.build: + meson: List libraries and their corresponding gir definition + Introduces a `libraries` variable that contains all libraries in a + list with the following format: + ``` meson + libraries = [ + [pkg_name, { + 'lib': library_object + 'gir': [ {full gir definition in a dict } ] + ], + .... + ] + ``` + It therefore refactors the way we build the gir so that we can reuse the + same information to build them against 'gstreamer-full' in gst-build + when linking statically + Part-of: + +2020-06-27 00:37:39 -0400 Thibault Saunier + + * gst-libs/gst/audio/meson.build: + * gst-libs/gst/basecamerabinsrc/meson.build: + * gst-libs/gst/codecs/meson.build: + * gst-libs/gst/insertbin/meson.build: + * gst-libs/gst/mpegts/meson.build: + * gst-libs/gst/play/meson.build: + * gst-libs/gst/player/meson.build: + * gst-libs/gst/vulkan/meson.build: + * gst-libs/gst/webrtc/meson.build: + meson: Mark files as files() + Making it more robust and future proof + And fix issues that it creates + Part-of: + +2021-09-13 17:53:12 -0300 Thibault Saunier + + * gst-libs/gst/audio/meson.build: + bad:audio: Add generated files sources in declare_dependency + Part-of: + +2021-10-15 23:18:41 +0900 Seungha Yang + + * sys/mediafoundation/gstmftransform.cpp: + * sys/mediafoundation/gstmfutils.cpp: + * sys/mediafoundation/gstmfvideoenc.cpp: + mediafoundation: Fix various string constness handling + ... with fixing typo (g_strup -> g_strdup) + Constness needs to be explicit in C++ world otherwise compiler + would complain about that. + Part-of: + +2021-10-15 10:03:46 +0100 Rob Agar + + * tests/examples/webrtc/webrtcrenego.c: + missing transceiver unref in WebRTC renegotiation example + Part-of: + +2021-10-13 17:17:44 +0800 Mengkejiergeli Ba + + * tests/examples/va/multiple-vpp.c: + tests:va: Fix null ptr dereference in multi-vpp + Dereference the pointer err before null check, which raised a null + pointer dereference issue by Coverity. Modify it to do the null check + of err first, then dereference it. + Part-of: + +2021-10-13 15:58:29 +0800 Mengkejiergeli Ba + + * sys/va/gstvadecoder.c: + va: Fix null ptr dereference for vadeocder + Making a null check in gst_va_decode_picture_free () indicates pic->buffers or pic->slices + can be null, then in _destroy_buffers () the pointers are dereferenced, which is detected + as dereference after null check by Coverity. Thus, modify the code to do null check in + _detroy_buffers (). + Part-of: + +2021-04-05 10:29:37 +0300 Vivia Nikolaidou + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/tsdemux.c: + * gst/mpegtsdemux/tsdemux.h: + tsdemux: Handle delayed seek events + Store the event in case it cannot be processed immediately and process + it after the first segment has been produced. + Part-of: + +2021-04-05 10:28:51 +0300 Vivia Nikolaidou + + * gst/mpegtsdemux/tsdemux.c: + * gst/mpegtsdemux/tsdemux.h: + tsdemux: Protect demux->segment_event with a mutex + Would otherwise cause weird issues when processing a delayed seek event + Part-of: + +2021-10-14 14:35:45 -0400 Nicolas Dufresne + + * gst-libs/gst/codecs/gsth264decoder.c: + codecs: h264: Fix wrong type of ret variable + This ret is not a GstFlowReturn. This broke v4l2 decoder which does not + implement new_picture() virtual function. + Part-of: + +2021-10-13 21:45:34 +0900 Seungha Yang + + * sys/d3d11/gstd3d11desktopdup.h: + * sys/d3d11/gstd3d11screencapture.cpp: + * sys/d3d11/gstd3d11screencapture.h: + * sys/d3d11/gstd3d11screencapturedevice.cpp: + * sys/d3d11/gstd3d11screencapturedevice.h: + * sys/d3d11/gstd3d11screencapturesrc.cpp: + * sys/d3d11/gstd3d11screencapturesrc.h: + * sys/d3d11/meson.build: + * sys/d3d11/plugin.cpp: + * tests/examples/d3d11/d3d11screencapturesrc.cpp: + * tests/examples/d3d11/meson.build: + d3d11: Rename screen capture element + Old name "desktopdup" may confuse users. Now it's renamed to + "screencapture" + Part-of: + +2021-10-05 18:52:25 -0300 Thibault Saunier + + * gst-libs/gst/transcoder/gsttranscoder.c: + transcoder: Set state back to NULL after run() finishes + Part-of: + +2021-09-13 18:02:03 -0300 Thibault Saunier + + * gst-libs/gst/transcoder/gsttranscoder.h: + transcoder: Use full path for includes in 'gsttranscoder.h' + Part-of: + +2021-10-12 17:50:31 +0800 Mengkejiergeli Ba + + * gst-libs/gst/va/gstvadisplay_drm.c: + va:display: Don't close an fd with negative value + Cannot pass negative parameter to close() and thus no need to apply + close() when fd < 0. + Part-of: + +2021-10-12 17:48:17 +0800 Mengkejiergeli Ba + + * sys/va/gstvadecoder.c: + va: Fix error handling for decoder + Need to check if va decoder is closed successfully. + Part-of: + +2021-10-12 17:44:27 +0800 Mengkejiergeli Ba + + * sys/va/gstvabasetransform.c: + va: Fix error handling for base transform + Need to check the returned value of gst_buffer_pool_set_active() when + setting the active status of buffer pool. + Part-of: + +2021-10-13 21:26:53 -0300 Thibault Saunier + + * ext/avtp/meson.build: + meson:avtp: Error out if sock_txtime is not present and avtp is enabled + Part-of: + +2021-10-10 01:56:32 +0900 Seungha Yang + + * gst-libs/gst/codecparsers/gsth264parser.c: + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: {h264,h265}parser: Fix typo around SEI nalu generator + Fix to create correct SEI nalu when the size of payloadType and/or + payloadType is larger than 255 (0xff) + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1601 + Part-of: + +2021-10-05 20:15:44 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvafilter.c: + * sys/va/gstvavpp.c: + vapostproc: Negotiate interlaced. + Part-of: + +2021-10-05 20:15:09 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Copy missing fields at fixate. + When caps negotiation implies a caps feature change, some fields might + get lost. This patch brings them back from input caps. + Part-of: + +2021-10-05 20:15:09 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Simplify size fixate. + gst_va_vpp_fixate_size() returned the fixated caps, but that is not + needed since `othercaps` are modified inline. + Part-of: + +2021-10-05 20:15:09 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Simplify fixate. + The first approach to fixate was simply a copy&paste of both + videoconvert and videoscale, trying to keep their logic as isolated + as possible. But that brought duplicated and sparse logic. + This patch merge both approaches simplifying the fixate operation. + Part-of: + +2021-10-05 17:41:57 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvadeinterlace.c: + * sys/va/gstvafilter.c: + * sys/va/gstvafilter.h: + * sys/va/gstvavpp.c: + va: filter, deinterlace, vpp: Add gst_va_buffer_get_surface_flags(). + Add a helper function to get, from GstVideoInfo and GstBuffers flags, + the VA interlace surface flags. This is used currently by vainterlace + element, but it will be used in vapostproc too if it can process + interlaced frames. + Part-of: + +2021-09-22 14:50:40 +0800 Mengkejiergeli Ba + + * sys/msdk/gstmsdkenc.c: + msdkenc: fix vp9enc initialization fail + MediaSDK does not support to handle extbuff with id + MFX_EXTBUFF_VIDEO_SIGNAL_INFO for mjpegenc and vp9enc. Hence, need to + exclude mjpeg and vp9 when passing color properties to MediaSDK during + msdkenc initialization. + Fix issue: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/764 + Part-of: + +2021-10-10 17:04:13 +0900 Seungha Yang + + * tests/examples/d3d11/d3d11desktopdupsrc.cpp: + * tests/examples/d3d11/d3d11device.cpp: + * tests/examples/d3d11/d3d11device.h: + * tests/examples/d3d11/d3d11videosink-kb.c: + * tests/examples/d3d11/d3d11videosink-kb.h: + * tests/examples/d3d11/d3d11videosink-shared-texture-d3d9ex.cpp: + * tests/examples/d3d11/d3d11videosink-shared-texture.cpp: + * tests/examples/d3d11/d3d11videosink.c: + * tests/examples/d3d11/meson.build: + * tests/examples/meson.build: + examples: d3d11: Add a desktop capture example + ... with d3d11 desktop capture device provider + Part-of: + +2021-10-05 21:49:38 +0900 Seungha Yang + + * sys/d3d11/gstd3d11desktopdup.cpp: + * sys/d3d11/gstd3d11desktopdup.h: + * sys/d3d11/gstd3d11desktopdupdevice.cpp: + * sys/d3d11/gstd3d11desktopdupdevice.h: + * sys/d3d11/gstd3d11desktopdupsrc.cpp: + * sys/d3d11/meson.build: + * sys/d3d11/plugin.cpp: + d3d11: Add device provider for d3d11desktopdupsrc + ... and add support for multi-GPU/multi-monitor + By using newly added "monitor-handle" property, user can specify a + monitor to be captured via HMONITOR handle. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1673 + Part-of: + +2021-10-11 15:23:08 +0200 Stéphane Cerveau + + * ext/ttml/gstttmlparse.c: + * ext/ttml/gstttmlrender.c: + ttml: fix log init + The log system should be init before calling a log + Fix regression after: + https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038 + Part-of: + +2021-10-04 13:30:37 +0200 Víctor Manuel Jáquez Leal + + * tests/check/elements/vapostproc.c: + * tests/check/meson.build: + tests: va: Add VA buffer copy tests. + It should only work for raw buffers, but fails on dmabuf since it + should have a drm modifier. + Part-of: + +2021-10-06 15:20:50 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaallocator.c: + va: allocator: dmabuf: Use GstVaSurfaceCopy, if possible. + If dmabuf-based buffer to copy contains only one memory, and there are + memories available in the allocator's pool, it's possible a fast + memory copy using GstVaSurfaceCopy, regardless the drm modifier. + Part-of: + +2021-10-05 15:21:01 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaallocator.c: + va: allocator: Use GstVaSurfaceCopy. + Part-of: + +2021-10-05 13:36:56 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaallocator.c: + * sys/va/gstvasurfacecopy.c: + * sys/va/gstvasurfacecopy.h: + * sys/va/meson.build: + * sys/va/vasurfaceimage.c: + * sys/va/vasurfaceimage.h: + va: Add GstVaSurfaceCopy class. + This new class is a helper for fast/tricky copy of surfaces. First it + tries to copy using the function vaCopy in libva 1.12. If it fails, or + it's not available, a GstVaFilter is tried to be instantiated with the + allocator's parameters, and if succeed, it's used for copying the + source surface. + This is required for dmabuf surfaces with drm modifier. + Part-of: + +2021-10-05 13:21:00 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvafilter.c: + * sys/va/vasurfaceimage.c: + * sys/va/vasurfaceimage.h: + va: filter: Enable to pass VASurfaceID in GstVaSample. + Initially GstVaSample processed its GstBuffer member to get the + VASurfaceID. But it might cases where we already have the VASurfaceID + to process by the filter. + This patch enables the possibility to pass the surfaces rather than + the buffers. In order to validate the surfaces a function to check + surfaces were added. + Part-of: + +2021-10-07 21:51:55 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaallocator.c: + * sys/va/meson.build: + * sys/va/vasurfaceimage.c: + * sys/va/vasurfaceimage.h: + va: Split VA memory handling in different files. + Take out the VA memory wrappers from gstvallocator.c to an external + file exposing the functions. + This is going to be needed for the copy helper object. + Part-of: + +2021-10-05 06:54:25 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaallocator.h: + va: allocator: Add missing header file. + Added stdint.h because uintptr_t is used. + Part-of: + +2021-10-04 21:31:53 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvadisplay_priv.c: + * sys/va/gstvadisplay_priv.h: + va: display: Add gst_va_display_has_vpp() + Part-of: + +2021-09-30 14:59:31 +0200 Benjamin Gaignard + + * sys/v4l2codecs/gstv4l2codecvp8dec.c: + * sys/v4l2codecs/linux/v4l2-controls.h: + v4l2codecs: Align v4l2-controls header with kernel 5.15-rc3 + Update v4l2-controls to be aligned with kernel 5.15-rc3. + Fix VP8 decoder to use the correct field name. + Part-of: + +2021-10-08 23:07:32 +0900 Seungha Yang + + * sys/mediafoundation/gstmfh264enc.cpp: + * sys/mediafoundation/gstmfh265enc.cpp: + * sys/mediafoundation/gstmfvideoenc.cpp: + * sys/mediafoundation/gstmfvideoenc.h: + * sys/mediafoundation/gstmfvp9enc.cpp: + mediafoundation: mfvideoenc: Use DXGI adapter LUID + Make use of new DXGI adapter LUID based device context sharing. + Note that we were using DXGI adapter LUID to open MFT already. + Part-of: + +2021-10-08 22:37:20 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + * sys/d3d11/gstd3d11decoder.cpp: + * sys/d3d11/gstd3d11decoder.h: + * sys/d3d11/gstd3d11h264dec.cpp: + * sys/d3d11/gstd3d11h265dec.cpp: + * sys/d3d11/gstd3d11mpeg2dec.cpp: + * sys/d3d11/gstd3d11vp8dec.cpp: + * sys/d3d11/gstd3d11vp9dec.cpp: + d3d11: d3d11decoder: Use DXGI adapter LUID + ... instead of index of DXGI adapter. + The order of IDXGIAdapter1 enumerated via IDXGIFactory1::EnumAdapters1 + can be varying even there's no rebooting in case that GPU preference order + is updated by user (for example, it can be done by using NVIDIA Control Panel + in case of multi-GPU laptop system) and eGPU is another possible case. + So, for an element which requires fixed target GPU requirement, + index based device enumeration is unreliable. + Part-of: + +2021-10-08 21:39:44 +0900 Seungha Yang + + * gst-libs/gst/d3d11/gstd3d11utils.cpp: + * gst-libs/gst/d3d11/gstd3d11utils.h: + d3d11: d3d11utils: Add support for DXGI Adapter LUID based D3D11 device context sharing + Part-of: + +2021-10-08 19:41:22 +0900 Seungha Yang + + * gst-libs/gst/d3d11/gstd3d11device.cpp: + * gst-libs/gst/d3d11/gstd3d11device.h: + * gst-libs/gst/d3d11/gstd3d11utils.cpp: + * gst-libs/gst/d3d11/gstd3d11utils.h: + * tests/check/libs/d3d11device.cpp: + * tests/check/meson.build: + d3d11: d3d11device: Add gst_d3d11_device_new_{for_adapter_luid,wrapped} + * gst_d3d11_device_new_for_adapter_luid() + Used for creating D3D11 device for a DXGI adapter (i.e., GPU) + corresponding to a LUID (Locally Unique Identifier). + This method can be useful for interop with other APIs such as + Direct3D12, MediaFoundation, CUDA, etc. + * gst_d3d11_device_new_wrapped() + Allows creating a new GstD3D11Device object by using already + configured ID3D11Device. This is conceptually equivalent to + gst_gl_context_new_wrapped() + Part-of: + +2021-10-08 17:16:02 +0900 Seungha Yang + + * gst-libs/gst/d3d11/gstd3d11device.cpp: + * sys/d3d11/gstd3d11window.cpp: + d3d11: d3d11device: Remove "allow-tearing" property + Plugin can query DXGI_FEATURE_PRESENT_ALLOW_TEARING without d3d11device + help + Part-of: + +2021-10-08 21:14:52 +0300 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + * tests/check/elements/webrtcbin.c: + webrtcbin: Use the same promise reply structure name everywhere + This was an inconsistent mix of different names in the past. The name + has no meaning at all so let's set all to "application/x-gst-promise". + Part-of: + +2021-10-08 15:44:37 +0300 Vivia Nikolaidou + + * docs/plugins/gst_plugins_cache.json: + * gst/debugutils/gstchopmydata.c: + chopmydata: Fix FIXMEs in gst_element_class_set_static_metadata + Part-of: + +2021-10-06 03:19:30 +0900 Seungha Yang + + * sys/d3d11/gstd3d11desktopdupsrc.cpp: + d3d11: d3d11desktopdupsrc: Add support for non-D3D11 downstream element + By this commit, application doesn't need to configure d3d11download + element for software pipeline which will make things simpler + Part-of: + +2021-10-06 22:06:44 +0900 Seungha Yang + + * gst-libs/gst/codecs/gstav1decoder.c: + * gst-libs/gst/codecs/gsth264decoder.c: + * gst-libs/gst/codecs/gsth265decoder.c: + * gst-libs/gst/codecs/gstmpeg2decoder.c: + * gst-libs/gst/codecs/gstvp8decoder.c: + * gst-libs/gst/codecs/gstvp9decoder.c: + codecs: Use GST_VIDEO_DECODER_ERROR() only for decoding error case + The GST_VIDEO_DECODER_ERROR() should be used only for robust/error-resilient + decoding purpose. Any other error codes such as not-negotiated or flushing + should be returned without modified for upstream to be able to handle + it immediately. (for example, application might want to try other + decoder element on not-negotiated) + Part-of: + +2021-10-07 01:54:29 +0900 Seungha Yang + + * gst-libs/gst/codecs/gsth264decoder.c: + codecs: h264decoder: Update for remaining gboolean to GstFlowReturn port + Fix for spurious/spammy warning and wrong function return type + Part-of: + +2021-09-23 17:36:20 +0530 Nirbheek Chauhan + + * ext/openjpeg/meson.build: + meson: Fix build with -Dopenjpeg=disabled + tests/check/meson.build uses the openjpeg_dep variable + unconditionally, and the subdir_done() is useless anyway, since the + plugin is only built if openjpeg_dep.found() is true. Fixes: + ..\tests\check\meson.build:23:0: ERROR: Unknown variable "openjpeg_dep". + In particular, this fixes the build on UWP since we disable openjpeg + explicitly in Cerbero when building for UWP. + Part-of: + +2021-10-01 14:35:06 +0200 Guillaume Desmottes + + * ext/gs/README.md: + bad: gs: update README + - add one missing dep + - change install path to match monorepo + - fix current dirs + Part-of: + +2021-09-17 13:02:38 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvadeinterlace.c: + * sys/va/gstvavpp.c: + * tests/examples/va/main.c: + va: Use macro rather than VAMemory feature string. + Part-of: + +2021-09-24 11:53:56 +0200 Jan Alexander Steffens (heftig) + + * gst/mpegtsdemux/mpegtsparse.c: + mpegtsparse: Don't assert the packet_size when filling for EOS + If the packetizer got reset for any reason (failure to find PCR?) then + the packet_size can be zero here even though we already enqueued some + packets. + Part-of: + +2021-09-22 00:05:43 +0900 Seungha Yang + + * gst-libs/gst/codecs/gstmpeg2decoder.c: + * gst-libs/gst/codecs/gstmpeg2decoder.h: + * sys/d3d11/gstd3d11mpeg2dec.cpp: + * sys/va/gstvampeg2dec.c: + codecs: mpeg2decoder: Use GstFlowReturn everywhere + boolean return value is not sufficient for representing the reason + of error in most cases. For instance, any errors around new_sequence() + would mean negotiation error, not just *ERROR*. + And some subclasses will allocate buffer/memory/surface on new_picture() + but it could be failed because of expected error, likely flushing + Part-of: + +2021-09-21 22:21:51 +0900 Seungha Yang + + * gst-libs/gst/codecs/gsth264decoder.c: + * gst-libs/gst/codecs/gsth264decoder.h: + * sys/d3d11/gstd3d11h264dec.cpp: + * sys/nvcodec/gstnvh264dec.c: + * sys/v4l2codecs/gstv4l2codech264dec.c: + * sys/va/gstvah264dec.c: + codecs: h264decoder: Use GstFlowReturn everywhere + boolean return value is not sufficient for representing the reason + of error in most cases. For instance, any errors around new_sequence() + would mean negotiation error, not just *ERROR*. + And some subclasses will allocate buffer/memory/surface on new_picture() + but it could be failed because of expected error, likely flushing + Part-of: + +2021-09-21 00:23:13 +0900 Seungha Yang + + * gst-libs/gst/codecs/gsth265decoder.c: + * gst-libs/gst/codecs/gsth265decoder.h: + * sys/d3d11/gstd3d11h265dec.cpp: + * sys/nvcodec/gstnvh265dec.c: + * sys/va/gstvah265dec.c: + codecs: h265decoder: Use GstFlowReturn everywhere + boolean return value is not sufficient for representing the reason + of error in most cases. For instance, any errors around new_sequence() + would mean negotiation error, not just *ERROR*. + And some subclasses will allocate buffer/memory/surface on new_picture() + but it could be failed because of expected error, likely flushing + Part-of: + +2021-10-02 21:22:23 +0900 Seungha Yang + + * ext/closedcaption/bit_slicer.c: + * ext/closedcaption/io-sim.c: + * ext/closedcaption/misc.h: + * ext/closedcaption/sampling_par.c: + closedcaption: Fix broken debug function macros with MSVC build + warning C4003: not enough arguments for function-like macro invocation 'warning' + G_STMT_END macro is extended to the below form with MSVC + __pragma(warning(push)) \ + __pragma(warning(disable:4127)) \ + while(0) \ + __pragma(warning(pop)) + So MSVC preprocessor will extend it further to + __pragma(VBI_CAT_LEVEL_LOG(push)) ... + Should rename warning() debug macro function therefore. + Part-of: + +2021-10-02 20:12:07 +0900 Seungha Yang + + * gst/mpegtsmux/gstbasetsmux.c: + mpegtsmux: basetsmux: Don't try to return value from void function + gstbasetsmux.c(1508): warning C4098: 'free_splice': 'void' function returning a value + Part-of: + +2021-10-03 16:53:54 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvadevice.c: + * sys/va/meson.build: + va: Make libgudev dependency optional. + libgudev is a problematic dependency, particularly in sandboxed + environments, such as flatpak. + This patch implements a way to get the available VA devices using + brute-forced traverse of /dev/drm/renderD* directory. Thus usable in + those sandboxed environments. + Part-of: + +2021-10-03 15:45:58 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/va/meson.build: + * sys/va/meson.build: + va: meson: Move back libgudev dependency to plugin. + When move the libgstva, libgudev dependency was moved as part of the + library, though it's not use by the library but the plugin. This patch + moves back libgudev dependency to the plugin. + Also HAVE_LIBDRM is move to the library which is the one who use it. + Part-of: + +2021-10-03 19:14:07 +0900 Seungha Yang + + * sys/nvcodec/gstnvdecoder.c: + * sys/nvcodec/gstnvh264dec.c: + nvcodec: nvh264sldec: Add support for interlaced stream + Implement missing interlaced stream support + Part-of: + +2021-10-03 17:41:40 +0900 Seungha Yang + + * sys/nvcodec/gstnvh264dec.c: + nvcodec: nvh264sldec: Consider additional render delay DPB pictures + At least additional 4 pictures are required + Part-of: + +2021-10-03 17:37:02 +0900 Seungha Yang + + * sys/nvcodec/gstnvvp9dec.c: + nvcodec: nvvp9sldec: Fix for VP9 profile2 decoding + Fix for output video format to be selected correctly + Part-of: + +2021-10-03 02:14:17 +0900 Seungha Yang + + * sys/msdk/meson.build: + msdk: meson: Fix build on Windows + subprojects\gst-plugins-bad\sys\msdk\meson.build:160:2: ERROR: Unknown variable "libva_dep". + Part-of: + +2021-10-03 01:45:57 +0900 Seungha Yang + + * sys/d3d11/gstd3d11vp9dec.cpp: + d3d11: d3d11vp9dec: Fix use_prev_in_find_mv_refs value setting + "last_show_frame" should be updated based on + GstVp9FrameHeader::show_frame, not show_existing_frame + Part-of: + +2021-09-18 22:51:53 +0900 Seungha Yang + + * gst-libs/gst/codecs/gstvp8decoder.c: + * gst-libs/gst/codecs/gstvp9decoder.c: + codecs: {vp8,vp9}decoder: Drain on new_sequence() + Decoder should drain queued frame (if any) and empty DPB before + starting new sequence. + Part-of: + +2021-10-01 00:27:42 +0900 Seungha Yang + + * sys/nvcodec/gstnvvp8dec.c: + * sys/nvcodec/gstnvvp9dec.c: + nvcodec: nv{vp8,vp9}sldec: Implement get_preferred_output_delay() + Equivalent to that of nvh264sldec. Use render delay in case of non-live + pipeline for the better throughput performance. + Part-of: + +2021-10-01 01:00:24 +0900 Seungha Yang + + * gst-libs/gst/codecs/gstvp8decoder.c: + * gst-libs/gst/codecs/gstvp9decoder.c: + codecs: {vp8,vp9}decoder: Cleanup drain code + Make them consistent with h26x decoder baseclass + Part-of: + +2021-10-01 02:58:44 +0900 Seungha Yang + + * gst-libs/gst/codecs/gstvp8decoder.c: + codecs: vp8decoder: Fix typo + Part-of: + +2021-10-02 20:21:41 +0900 Seungha Yang + + * gst-libs/gst/codecs/gstvp9decoder.c: + * gst-libs/gst/codecs/gstvp9decoder.h: + codecs: vp9decoder: add support for render delay + Some decoding APIs support delayed output for performance reasons. + One example would be to request decoding for multiple frames and + then query for the oldest frame in the output queue. + This also increases throughput for transcoding and improves seek + performance when supported by the underlying backend. + Introduce support in the vp9 base class, so that backends that + support render delays can actually implement it. + Co-authored by Seungha Yang + Part-of: + +2021-10-02 19:47:45 +0900 Seungha Yang + + * gst-libs/gst/codecs/gstvp9decoder.h: + codecs: vp9decoder: Fix class struct documentation + s/GstVp9Decoder/GstVp9DecoderClass + Part-of: + +2021-09-30 17:38:33 +0200 Víctor Manuel Jáquez Leal + + * sys/va/meson.build: + va: meson: Update and enhance meson syntax usage. + This patch contains two updates: + 1. Instead of checking for dependency already checked just to verify a + version, we use the dependency version API. + 2. Update the deprecated function get_pkgconfig_variable. + Part-of: + +2021-09-30 17:43:09 +0200 Víctor Manuel Jáquez Leal + + * sys/msdk/meson.build: + msdk: meson: Don't get dependency variable before it's valid. + It's possible to have installed MediaSDK environment + package (libmfx-dev in Debian) without libva environment package. This + setup will lead to a breakage of meson configuration. + The fix is to get the libva's driver directory variable after the + dependency is validated as found. + Part-of: + +2021-09-30 13:32:44 +0200 Marc Leeman + + * gst/rist/gstristsink.c: + ristsink: set sync to FALSE on RTCP sink + See commit 921e9a54: rtpsink: set sync off on rtcp_sink + Part-of: + +2021-09-30 13:19:40 +0200 Marc Leeman + + * gst/rtp/gstrtpsink.c: + rtpsink: set sync off on rtcp_sink + When using the following setup (the error can be reproduced using + simpler sender pipelines), the receiver resynchronises the clock on RTCP + packets. The effect was that a couple seconds were cut out of the + playback because an initial RTCP packet was dropped. + When sending out all RTCP packets (setting sync=FALSE on the RTCP + updsink), the playback is fine. + This syncs rtpsink with rtpsrc (where this property was already set). + gst-launch-1.0 filesrc location=899-en.mp3 \ + ! mpegaudioparse \ + ! mpg123audiodec \ + ! audioconvert \ + ! audioresample \ + ! avenc_g722 \ + ! rtpg722pay + ! rtpsink uri=rtp://239.1.2.3:1234 + gst-launch-1.0 uridecodebin rtp://239.1.2.3:1234?encoding-name=G722 \ + ! autoaudiosink + Part-of: + +2020-09-17 15:06:38 +0200 Marc Leeman + + * gst/rtp/gstrtpsrc.c: + * tests/check/elements/rtpsrc.c: + rtpmanagerbad: do not set iface on sink + Part-of: + +2021-08-27 19:19:57 +0900 Seungha Yang + + * sys/mediafoundation/gstmfdevice.c: + * sys/mediafoundation/gstwin32devicewatcher.cpp: + * sys/mediafoundation/gstwin32devicewatcher.h: + * sys/mediafoundation/meson.build: + mfdeviceprovider: Add support for device update + Similar to the wasapi2 plugin, GstWinRT library will be used for UWP, + and adding new GstWin32DeviceWatcher object implementation for + Win32 desktop application. + Part-of: + +2021-08-26 22:38:37 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2device.c: + * sys/wasapi2/gstwasapi2device.h: + * sys/wasapi2/meson.build: + * sys/wasapi2/plugin.c: + wasapi2deviceprovider: Add support for device update + ... by using newly implemented GstWinRT library + Part-of: + +2021-08-26 19:47:51 +0900 Seungha Yang + + * gst-libs/gst/meson.build: + * gst-libs/gst/winrt/gstwinrt.h: + * gst-libs/gst/winrt/gstwinrtdevicewatcher.cpp: + * gst-libs/gst/winrt/gstwinrtdevicewatcher.h: + * gst-libs/gst/winrt/meson.build: + * gst-libs/gst/winrt/winrt-prelude.h: + libs: Introduce GstWinRT library + Adding a helper library for various WinRT specific implementations. + Currently this library supports only DeviceWatcher abstraction object + which can be used for dynamic device add/remove detection. + See also + https://docs.microsoft.com/en-us/uwp/api/windows.devices.enumeration.devicewatcher?view=winrt-20348 + Part-of: + +2021-09-28 10:11:15 +1000 Brad Hards + + * README: + * RELEASE: + doc: update IRC links to OFTC + Part-of: + +2021-09-18 23:37:20 +0900 Seungha Yang + + * sys/d3d11/gstd3d11videosink.cpp: + * sys/d3d11/gstd3d11window.cpp: + d3d11videosink: Add support for crop meta + ... when upstream element is d3d11. + Note that, if upstream element is not d3d11, crop meta is almost + pointless since d3d11videosink will upload video frame to GPU memory + in any case. + Part-of: + +2021-09-18 23:37:59 +0900 Seungha Yang + + * sys/d3d11/gstd3d11videosink.cpp: + d3d11videosink: Perform propose_allocation() even when we have no configured window + In order to support d3d11 device update, d3d11videosink will configure + window on the first buffer. So, there might not be configured + window when propose_allocation() is required. + Part-of: + +2021-09-27 15:30:25 +0300 Sebastian Dröge + + * ext/gs/gstgscommon.cpp: + * ext/gs/gstgscommon.h: + * ext/gs/gstgssink.cpp: + * ext/gs/gstgssrc.cpp: + gs: Add support for authenticating via Service Account Credentials + This allows authenticating directly with Server Account credentials + instead of having it configured on host system separately, and thus + allows using arbitrary accounts configured/selected at runtime. + Part-of: + +2021-09-27 14:56:21 +0300 Sebastian Dröge + + * ext/gs/gstgs.cpp: + * ext/gs/gstgscommon.cpp: + * ext/gs/gstgscommon.h: + * ext/gs/gstgssink.cpp: + * ext/gs/gstgssink.h: + * ext/gs/gstgssrc.cpp: + * ext/gs/gstgssrc.h: + gs: Fix indentation and make it consistent + Apparently this partially used clang-format's default settings, so let's + use that for everything now. + Part-of: + +2021-09-26 01:07:02 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + +2021-09-23 19:30:32 +0300 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Always set SINK/SRC flags + webrtcbin can act as a sink/source depending on the SDP later. Without + setting this here already, surrounding bins might not notice this and + the pipeline configuration might become inconsistent, e.g. with regards + to latency. + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/737 + Part-of: + +2021-09-25 00:09:00 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + * gst-libs/gst/mpegts/gst-scte-section.h: + * gst-libs/gst/mpegts/gstmpegtssection.c: + * gst/mpegtsdemux/tsdemux.c: + mpegts: add missing Since comments after SCTE 35 work + Part-of: + +2021-06-08 23:25:58 +0200 Mathieu Duponchelle + + * gst/mpegtsmux/gstbasetsmux.c: + basetsmux: use private copy of g_ptr_array_copy + This function is only present since glib 2.62 + Part-of: + +2021-05-04 14:38:28 +0200 Mathieu Duponchelle + + * gst/mpegtsmux/gstbasetsmux.c: + basetsmux: fix SCTE pts_adjustment with offsets + When there are elements between the demuxer and the muxer that + introduce an offset to the running time, or when offsets are + set on pads by the application, this shift must be taken into + account when calculating the final pts_adjustement. + Part-of: + +2021-04-23 01:22:32 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + * gst-libs/gst/mpegts/gst-scte-section.h: + * gst/mpegtsmux/gstbasetsmux.c: + basetsmux: rework SCTE section handling to handle passthrough + mpegtsmux can receive SCTE sections from two origins: events + created by the application, and events forwarded downstream by + mpegtsdemux, containing sections that may not have been fully + parsed, and additional data to help tsmux translate times to + the correct domain, both for requesting keyframes and calculating + an accurate pts_adjustment. + The complete approach is documented further in a comment above + the relevant function. + Part-of: + +2021-04-23 01:19:21 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gstmpegtssection.c: + mpegtspacketizer: handle "packetizing" already packetized data + .. when the section didn't have a packetizer. This can happen + as a result of building a new section from a copy of the original + data of another section. + Part-of: + +2021-04-23 01:15:08 +0200 Mathieu Duponchelle + + * gst/mpegtsdemux/tsdemux.c: + * gst/mpegtsdemux/tsdemux.h: + tsdemux: switch SCTE 35 sections handling to a passthrough model + Instead of modifying the splice times in the incoming sections + to running time and expecting eg mpegtsmux to convert those back + to its local PES time domain, which might be impossible when + those splice times are encrypted or the specification is extended, + transmit the needed information to the muxer as separate fields in + the event: + * A pts offset field can be used by the muxer in order to calculate + a final pts_adjustment + * A rtime_map can be used by the muxer to determine the correct + running times at which it should request keyframes + Part-of: + +2021-04-14 00:27:16 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + scte-section: add support for packetizing splice_program_flag='0' + Part-of: + +2021-04-13 23:56:06 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + scte-section: add support for packetizing schedule events + Part-of: + +2021-04-13 23:42:54 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + scte-section: Add TODO for porting to gst_bit_* + Part-of: + +2021-04-13 23:38:16 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + * gst-libs/gst/mpegts/gst-scte-section.h: + scte-section: add support for parsing splice components + Part-of: + +2021-04-13 20:51:09 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + * gst-libs/gst/mpegts/gst-scte-section.h: + scte-section: add support for SCHEDULE commands + Part-of: + +2021-04-13 20:47:36 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + scte-section: fix typo + Part-of: + +2021-04-13 20:44:54 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + * gst-libs/gst/mpegts/gst-scte-section.h: + gst-scte-section: implement partial parsing + In cases where either the SIT is encrypted, or an unknown + command is encountered, we still want to send an event downstream. + Part-of: + +2021-04-06 17:57:42 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + * gst-libs/gst/mpegts/gst-scte-section.h: + * tests/examples/mpegts/ts-scte-writer.c: + scte35-section: semantic API break + Document that the constructors for the splice events expect + a running time, as users of the API can not be expected to + predict the appropriate local PTS. + Part-of: + +2021-04-06 17:37:28 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.c: + scte-section: add support for packetizing time_signal splices + time_signal splices are trivial, they only contain a splice_time() + and all the relevant information is carried in descriptors. + Part-of: + +2021-04-06 00:58:33 +0200 Mathieu Duponchelle + + * gst/mpegtsmux/gstbasetsmux.c: + * gst/mpegtsmux/gstbasetsmux.h: + basetsmux: extend SCTE 35 support + Makes it possible to support passing SCTE 35 cue points from + demuxer to muxer, while preserving correct timing. + This will also improve ex nihilo cue points injection, as splice + times and durations are now interpreted as running time values, + and may trigger key unit requests. + Part-of: + +2021-04-06 00:36:43 +0200 Mathieu Duponchelle + + * docs/plugins/gst_plugins_cache.json: + * gst/mpegtsdemux/tsdemux.c: + * gst/mpegtsdemux/tsdemux.h: + tsdemux: Expose send-scte35-events property + When enabled, SCTE 35 sections (eg ad placement opportunities) + are forwarded as events donwstream. + Part-of: + +2021-04-06 00:26:50 +0200 Mathieu Duponchelle + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + mpegtsbase: expose vmethod to let subclass handle sections + This can be used by tsdemux to handle and forward SCTE 35 + sections. + Part-of: + +2021-04-06 00:23:09 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gstmpegtssection.c: + * gst-libs/gst/mpegts/gstmpegtssection.h: + mpegtssection: expose event constructor + This allows the demuxer to forward sections of interest downstream, + for example SCTE 35 splice information. These can then be reinjected + appropriately by a muxer for example. + Part-of: + +2021-04-06 00:21:58 +0200 Mathieu Duponchelle + + * gst-libs/gst/mpegts/gst-scte-section.h: + scte-section.h: fix type macros + Part-of: + === release 1.19.2 === 2021-09-23 01:34:47 +0100 Tim-Philipp Müller @@ -166207,6 +168300,7 @@ === release 0.10.21 === +('0', '10', '21') 2011-01-21 21:13:22 +0000 Tim-Philipp Müller * ChangeLog: @@ -204517,8 +206611,6 @@ every file but apart from that no changes compared to the latest SVN versions happened. -=== release 0.10.21 === - 2008-09-01 16:05:45 +0000 Edward Hervey tests/check/elements/audioresample.c: Now that GstBaseTransform is 'fixed' ... remove cruft from tests. @@ -208023,8 +210115,6 @@ (deinterleave_suite): Add some more deinterleave unit test bits I had locally. -=== release 0.10.20 === - 2008-05-14 13:57:41 +0000 Tim-Philipp Müller gst/audioresample/gstaudioresample.c: Revert previous change which made basetransform handle buffer_alloc and which b... @@ -209581,8 +211671,6 @@ Use AG_GST_CHECK_PLUGIN and AG_GST_DISABLE_PLUGIN to simplify which plug-ins are included/excluded. (#498222) -=== release 0.10.19 === - 2008-03-03 06:04:02 +0000 Sebastian Dröge Correct all relevant warnings found by the sparse semantic code analyzer. This include marking several symbols static... @@ -213759,8 +215847,6 @@ (gst_speex_resample_update_state): Only post the latency message if we have a resampler state already. -=== release 0.10.17 === - 2007-11-23 10:21:11 +0000 Sebastian Dröge gst/audioresample/gstaudioresample.c: Implement latency query. @@ -218728,8 +220814,6 @@ work with earlier versions due to GstChildProxy brokeness). Also up requirements to last released core/base. -=== release 0.10.15 === - 2007-04-27 15:33:46 +0000 Julien Moutte ext/theora/theoradec.c: Calculate buffer duration correctly to generate a perfect stream (#433888). @@ -221059,8 +223143,6 @@ Original commit message from CVS: move amrwb code -=== release 0.10.12 === - 2007-01-04 12:49:47 +0000 Thomas Vander Stichele configure.ac: split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS so that GST_BASE_CFLAGS can go inbetwe...