Lines Matching +full:rust +full:- +full:embedded
5 The latest bug-fix release in the 1.20 series is 1.20.3 and was released
16 the stable 1.x API series of your favourite cross-platform multimedia
24 - Development in GitLab was switched to a single git repository
26 - GstPlay: new high-level playback library, replaces GstPlayer
27 - WebM Alpha decoding support
28 - Encoding profiles can now be tweaked with additional
29 application-specified element properties
30 - Compositor: multi-threaded video conversion and mixing
31 - RTP header extensions: unified support in RTP depayloader and
33 - SMPTE 2022-1 2-D Forward Error Correction support
34 - Smart encoding (pass through) support for VP8, VP9, H.265 in
36 - Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
38 - Video decoder subframe support
39 - Video decoder automatic packet-loss, data corruption, and keyframe
41 - mp4 and Matroska muxers now support profile/level/resolution changes
43 - mp4 muxing mode that initially creates a fragmented mp4 which is
45 - Audio support for the WebKit Port for Embedded (WPE) web page source
47 - CUDA based video color space convert and rescale elements and
49 - NVIDIA memory:NVMM support for OpenGL glupload and gldownload
51 - Many WebRTC improvements
52 - The new VA-API plugin implementation fleshed out with more decoders
54 - AppSink API to retrieve events in addition to buffers and buffer
56 - AppSrc gained more configuration options for the internal queue
59 - Updated Rust bindings and many new Rust plugins
60 - Improved support for custom minimal GStreamer builds
61 - Support build against FFmpeg 5.0
62 - Linux Stateless CODEC support gained MPEG-2 and VP9
63 - Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
64 - Lots of new plugins, features, performance improvements and bug
71 - gst_element_get_request_pad() has been deprecated in favour of the
72 newly-added gst_element_request_pad_simple() which does the exact
75 already-existing request pad.
84 In addition to these separate git repositories there was a gst-build
89 system-installed GStreamer version.
100 The Rust bindings and Rust plugins modules have not been merged into the
112 GstPlay: new high-level playback library replacing GstPlayer
114 - GstPlay is a new high-level playback library that replaces the older
121 that this new GstPlay API will be moved to gst-plugins-base in
124 - The existing GstPlayer API is scheduled for deprecation and will be
131 - Implement WebM alpha decoding (VP8/VP9 with alpha), which required
133 software decoders and hardware-accelerated decoders.
135 - VP8/VP9 don’t support alpha components natively in the codec, so the
143 - matroskademux has been extended extract this per-frame alpha side
150 - The new codecalpha plugin contains various bits of infrastructure to
153 - codecalphademux splits out the alpha stream from the metas on
155 - alphacombine takes two decoded raw video streams (one alpha, one
158 - vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
162 - The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
163 decode both alpha and non-alpha stream with a single decoder
166 - A new AV12 video format was added which is basically NV12 with an
167 alpha plane, which is more convenient for many hardware-accelerated
170 - Watch Nicolas Dufresne’s LCA 2022 talk “Bringing WebM Alpha support
175 - RTP Header Extensions are specified in RFC 5285 and provide a way to
177 and the RTP payload. This is often used for per-frame metadata,
178 extended timestamps or other application-specific extra data. There
179 are several commonly-used extensions specified in various RFCs, but
187 - Inserting and extracting RTP header extension data has so far been a
195 - This release adds various pieces of new infrastructure for generic
199 - GstRTPHeaderExtension is a new helper base class for reading and
206 - "add-extension" and "clear-extension" action signals on RTP
209 - The "request-extension" signal will be emitted if an extension
212 - new "auto-header-extension" property on RTP payloaders and
217 - RTP header extension implementations:
219 - rtphdrextclientaudiolevel: Client-to-Mixer Audio Level
221 - rtphdrextcolorspace: Color Space extension, extends RTP
224 - rtphdrexttwcc: Transport Wide Congestion Control support
226 - gst_rtp_buffer_remove_extension_data() is a new helper function to
229 - The existing gst_rtp_buffer_set_extension_data() now also supports
234 - appsink: new API to pull events out of appsink in addition to
244 There is now a new "new-serialized-event" signal which will be
246 "new-sample" signal). The "emit-signals" property must be set to
257 - appsrc: allow configuration of internal queue limits in time and
270 using the new "max-time" and "max-buffers" properties. Of course
271 there are also matching new read-only"current-level-buffers" and
272 "current-level-time properties" properties to query the current fill
276 configured as leaky using the new "leaky-type" property. That way
283 - New string serialisation format for structs and caps that can handle
285 items (e.g. some-struct, some-field=[nested-struct, nested=true]).
287 one level of nesting. For backwards-compatibility reasons the old
295 - New convenience API to register and create custom GstMetas:
303 than the lower-level API when the absolute best performance isn’t a
315 - GstEncodingProfile: The new "element-properties" and
320 but often what applications want to do is take a ready-made encoding
325 per-element basis.
333 - New GstAudioLevelMeta containing Audio Level Indication as per RFC
336 - The level element has been updated to add GstAudioLevelMeta on
337 buffers if the "audio-level-meta" property is set to TRUE. This can
341 - New Client-to-Mixer Audio Level Indication (RFC6464) RTP Header
343 payloaders and depayloaders if their "auto-header-extension"
348 - The GstVideoDecoder base class has gained various new APIs to
354 - Video decoder subclasses can mark output frames as corrupted via
357 - A new "discard-corrupted-frames" property allows applications to
360 is a replacement for the "output-corrupt" property of the FFmpeg
363 - RTP depayloaders can now signal to decoders that data is missing
376 - The GstVideoDecoder::handle_missing_data vfunc was added to
380 - gst_video_decoder_set_needs_sync_point() lets subclasses signal
382 enabled, the base class will discard all non-sync point frames
386 by sending a force-key-unit event (see next items).
388 - New "automatic-request-sync-points" and
389 "automatic-request-sync-point-flags" properties to automatically
395 - The new "min-force-key-unit-interval" property can be used to
400 - gst_video_decoder_request_sync_point() allows subclasses to
403 "min-force-key-unit-interval" property if set.
407 - Element registration and registration of other plugin features
411 - A number of new macros have been added to declare and create
412 per-element and per-plugin feature register functions in all
413 plugins, and then call those from the per-plugin plugin_init
416 - GST_ELEMENT_REGISTER_DEFINE,
420 - GST_ELEMENT_REGISTER, GST_DEVICE_PROVIDER_REGISTER,
424 - GST_ELEMENT_REGISTER_DECLARE,
429 - and various variants for advanced use cases.
431 - This means that applications can call the per-element and per-plugin
439 - gst_init() will automatically call a gst_init_static_plugins()
442 - See the GStreamer static build documentation and Stéphane’s blog
448 - New aesdec and aesenc elements for AES encryption and decryption in
451 - New encodebin2 element with dynamic/sometimes source pads in order
455 - New fakeaudiosink and videocodectestsink elements for testing and
458 - rtpisacpay, rtpisacdepay: new RTP payloader and depayloader for iSAC
461 - rtpst2022-1-fecdec, rtpst2022-1-fecenc: new elements providing SMPTE
462 2022-1 2-D Forward Error Correction. More details in Mathieu’s blog
465 - isac: new plugin wrapping the Internet Speech Audio Codec reference
468 - asio: plugin for Steinberg ASIO (Audio Streaming Input/Output) API
470 - gssrc, gssink: add source and sink for Google Cloud Storage
472 - onnx: new plugin to apply ONNX neural network models to video
474 - openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
476 - qroverlay, debugqroverlay: new elements that allow overlaying data
479 - cvtracker: new OpenCV-based tracker element
481 - av1parse, vp9parse: new parsers for AV1 and VP9 video
483 - va: work on the new VA-API plugin implementation for
484 hardware-accelerated video decoding and encoding has continued at
488 - vah265dec: VA-API H.265 decoder
489 - vavp8dec: VA-API VP8 decoder
490 - vavp9dec: VA-API VP9 decoder
491 - vaav1dec: VA-API AV1 decoder
492 - vampeg2dec: VA-API MPEG-2 decoder
493 - vadeinterlace: : VA-API deinterlace filter
494 - vapostproc: : VA-API postproc filter (color conversion,
501 - vaapiav1dec: new AV1 decoder element (in gstreamer-vaapi)
503 - msdkav1dec: hardware-accelerated AV1 decoder using the Intel Media
506 - nvcodec plugin for NVIDIA NVCODEC API for hardware-accelerated video
509 - cudaconvert, cudascale: new CUDA based video color space convert
511 - cudaupload, cudadownload: new helper elements for memory
513 - nvvp8sldec, nvvp9sldec: new GstCodecs-based VP8/VP9 decoders
515 - Various new hardware-accelerated elements for Windows:
517 - d3d11screencapturesrc: new desktop capture element, including a
520 - d3d11av1dec and d3d11mpeg2dec: AV1 and MPEG-2 decoders
521 - d3d11deinterlace: deinterlacing filter
522 - d3d11compositor: video composing element
523 - see Windows section below for more details
525 - new Rust plugins:
527 - audiornnoise: Removes noise from an audio stream
528 - awstranscribeparse: Parses AWS audio transcripts into timed text
530 - ccdetect: Detects if valid closed captions are present in a
532 - cea608tojson: Converts CEA-608 Closed Captions to a JSON
534 - cmafmux: CMAF fragmented mp4 muxer
535 - dashmp4mux: DASH fragmented mp4 muxer
536 - isofmp4mux: ISO fragmented mp4 muxer
537 - ebur128level: EBU R128 Loudness Level Measurement
538 - ffv1dec: FFV1 video decoder
539 - gtk4paintablesink: GTK4 video sink, which provides a
541 - hlssink3: HTTP Live Streaming sink
542 - hrtfrender: Head-Related Transfer Function (HRTF) renderer
543 - hsvdetector: HSV colorspace detector
544 - hsvfilter: HSV colorspace filter
545 - jsongstenc: Wraps buffers containing any valid top-level JSON
548 - jsongstparse: Parses ndjson as output by jsongstenc
549 - jsontovtt: converts JSON to WebVTT subtitles
550 - regex: Applies regular expression operations on text
551 - roundedcorners: Adds rounded corners to video
552 - spotifyaudiosrc: Spotify source
553 - textahead: Display upcoming text buffers ahead (e.g. for
555 - transcriberbin: passthrough bin that transcribes raw audio to
558 - tttojson: Converts timed text to a JSON representation
559 - uriplaylistbin: Playlist source bin
560 - webpdec-rs: WebP image decoder with animation support
562 - New plugin codecalpha with elements to assist with WebM Alpha
565 - codecalphademux: Split stream with GstVideoCodecAlphaMeta into
567 - alphacombine: Combine two raw video stream (I420 or NV12) as one
569 - vp8alphadecodebin: A bin to handle software decoding of VP8 with
571 - vp9alphadecodebin: A bin to handle software decoding of VP9 with
574 - New hardware accelerated elements for Linux:
576 - v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
577 - v4l2slvp9dec: Support for Linux Stateless VP9 decoders
578 - v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
580 - v4l2slvp9alphadecodebin: Support HW accelerated VP9 with alpha
585 - assrender: handle more font mime types; better interaction with
586 matroskademux for embedded fonts
588 - audiobuffersplit: Add support for specifying output buffer size in
591 - audiolatency: new "samplesperbuffer" property so users can configure
597 - audiomixer, audiointerleave, GstAudioAggregator: now keep a count of
600 setting the "qos-messages" property on input pads.
602 - audiomixer, compositor: improved handling of new inputs added at
618 "ignore-inactive-pads" property on compositor, audiomixer or other
619 GstAudioAggregator-based elements.
621 - cccombiner: implement “scheduling” of captions. So far cccombiner’s
628 potentially re-injected if the input video frame had a time code
633 (configurable via the "max-scheduled" property). The new original
634 funnel-like behaviour can be restored by setting the "scheduling"
637 - ccconverter: new "cdp-mode" property to specify which sections to
642 - clocksync: new "sync-to-first" property for automatic timestamp
643 offset setup: if set clocksync will set up the "ts-offset" value
645 first buffer arrived. The newly configured "ts-offset" in this case
647 waiting on the clock. This is useful for example to feed a non-live
648 input into an already-running pipeline.
650 - compositor:
652 - multi-threaded input conversion and compositing. Set the
653 "max-threads" property to activate this.
654 - new "sizing-policy" property to support display aspect ratio
655 (DAR)-aware scaling. By default the image is scaled to fill the
657 keeping the aspect ratio. With sizing-policy=keep-aspect-ratio
663 - new "zero-size-is-unscaled" property on input pads. By default
665 scaled in that dimension. But if the "zero-size-is-unscaled"
670 - improved handling of new inputs at runtime via
671 "ignore-inactive-pads"property (see above for details)
672 - allow output format with alpha even if none of the inputs have
676 - dashsink: add H.265 codec support and signals for allowing custom
679 - decodebin3:
681 - improved decoder selection, especially for hardware decoders
682 - make input activation “atomic” when adding inputs dynamically
683 - better interleave handling: take into account decoder latency
686 - decklink:
688 - Updated DeckLink SDK to 11.2 to support DeckLink 8K Pro
689 - decklinkvideosrc:
690 - More accurate and stable capture timestamps: use the
694 - Automatically detect widescreen vs. normal NTSC/PAL
696 - encodebin:
698 - add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
699 re-encode where needed and otherwise pass through encoded video
700 as-is).
701 - H.264/H.265 smart encoding improvements: respect user-specified
702 stream-format, but if not specified default to avc3/hvc1 with
703 in-band SPS/PPS/VPS signalling for more flexibility.
704 - new encodebin2 element with dynamic/sometimes source pads in
707 - add APIs to set element properties on encoding profiles (see
710 - errorignore: new "ignore-eos" property to also ignore FLOW_EOS from
713 - giosrc: add support for growing source files: applications can
715 the "is-growing" property. If set, the source won’t EOS when it
718 new "waiting-data" and "done-waiting-data" signals keep the
721 - gtksink, gtkglsink:
723 - scroll event support: forwarded as navigation events into the
725 - "video-aspect-ratio-override" property to force a specific
727 - "rotate-method" property and support automatic rotation based on
730 - identity: new "stats" property allows applications to retrieve the
733 - interlace: add support for more formats, esp 10-bit, 12-bit and
734 16-bit ones
736 - jack: new "low-latency" property for automatic latency-optimized
737 setting and "port-names" property to select ports explicitly
739 - jpegdec: support output conversion to RGB using libjpeg-turbo (for
742 - line21dec:
744 - "mode" property to control whether and how detected closed
748 - "ntsc-only" property to only look for captions if video has NTSC
751 - line21enc: new "remove-caption-meta" to remove metas from output
755 - matroskademux, matroskamux: Add support for ffv1, a lossless
756 intra-frame video coding format.
758 - matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
759 (i.e. stream-format avc3 and hev1) which allows on-the-fly
762 - matroskamux: new "cluster-timestamp-offset" property, useful for use
766 - rtpsrc: add "caps" property to allow explicit setting of the caps
769 - mpegts: support SCTE-35 pass-through via new "send-scte35-events"
770 property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
773 semantic change in the SCTE-35 section API: timestamps are now in
776 - tsdemux: Handle PCR-less MPEG-TS streams; more robust timestamp
779 - mpegtsmux:
781 - More conformance improvements to make MPEG-TS analysers happy:
782 - PCR timing accuracy: Improvements to the way mpegtsmux
785 miss the configured pcr-interval, as that triggers various
786 MPEG-TS analyser errors.
787 - Improved PCR/SI scheduling
788 - Don’t write PCR until PAT/PMT are output to make sure streams
790 - Allow overriding the automatic PMT PID selection via
791 application-supplied PMT_%d fields in the prog-map
794 - mp4mux:
796 - new "first-moov-then-finalise" mode for fragmented output where
797 the output will start with a self-contained moov atom for the
805 - support H.264 avc3 and H.265 hvc1 stream formats as input where
806 the codec data is signalled in-band inside the bitstream instead
808 - support profile/level/resolution changes for H.264/H.265 input
812 in-band and not in the headers.
814 - multifilesink: new ""min-keyframe-distance"" property to make
815 minimum distance between keyframes in next-file=key-frame mode
816 configurable instead of hard-coding it to 10 seconds.
818 - mxfdemux has seen a big refactoring to support non-frame wrappings
821 - msdk plugin for hardware-accelerated video encoding and decoding
824 - oneVPL support (Intel oneAPI Video Processing Library)
825 - AV1 decoding support
826 - H.264 decoder now supports constrained-high and progressive-high
828 - H.264 encoder:
829 - more configuration options (properties):
830 "intra-refresh-type", "min-qp" , "max-qp", "p-pyramid",
831 "dblk-idc"
832 - H.265 encoder:
833 - can output main-still-picture profile
834 - now inserts HDR SEIs (mastering display colour volume and
836 - more configuration options (properties):
837 "intra-refresh-type", "min-qp" , "max-qp", "p-pyramid",
838 "b-pyramid", "dblk-idc", "transform-skip"
839 - support for RGB 10bit format
840 - External bitrate control in encoders
841 - Video post proc element msdkvpp gained support for 12-bit pixel
844 - nvh264sldec: interlaced stream support
846 - openh264enc: support main, high, constrained-high and
847 progressive-high profiles
849 - openjpeg: support for multithreaded decoding and encoding
851 - rtspsrc: now supports IPv6 also for tunneled mode (RTSP-over-HTTP);
852 new "ignore-x-server-reply" property to ignore the
853 x-server-ip-address server header reply in case of HTTP tunneling,
856 - souphttpsrc: Runtime compatibility support for libsoup2 and
858 libsoup2 and libsoup3 can’t co-exist in the same process because
870 - srtsrc, srtsink: add signals for the application to accept/reject
873 - timeoverlay: new elapsed-running-time time mode which shows the
874 running time since the first running time (and each flush-stop).
876 - udpsrc: new timestamping mode to retrieve packet receive timestamps
880 - uritranscodebin: new setup-source and element-setup signals for
883 - v4l2codecs plugin gained support for 4x4 and 32x32 tile formats
887 - v4l2slh264dec now implements the final Linux uAPI as shipped on
890 - valve: add "drop-mode" property and provide two new modes of
891 operation: in drop-mode=forward-sticky-events sticky events
892 (stream-start, segment, tags, caps, etc.) are forwarded downstream
893 even when dropping is enabled; drop-mode=transform-to-gap will in
901 - videocrop: support for many more pixel formats, e.g. planar YUV
906 - videotestsrc: new smpte-rp-219 pattern for SMPTE75 RP-219 conformant
909 - vp8enc: finish support for temporal scalability: two new properties
910 ("temporal-scalability-layer-flags",
911 "temporal-scalability-layer-sync-flags") and a unit change on the
912 "temporal-scalability-target-bitrate" property (now expects bps);
916 - vp9enc: new properties to tweak encoder performance:
918 - "aq-mode" to configure adaptive quantization modes
919 - "frame-parallel-decoding" to configure whether to create a
923 - "row-mt", "tile-columns" and "tile-rows" so multithreading can
924 be enabled on a per-tile basis, instead of on a per tile-column
925 basis. In combination with the new "tile-rows" property, this
929 - vp9dec, vp9enc: add support for 10-bit 4:2:0 and 4:2:2 YUV, as well
930 as 8-bit 4:4:4
932 - vp8enc, vp9enc now default to “good quality” for the deadline
934 quality causes the encoder to be absurdly slow, most real-life users
935 will prefer good-enough quality with better performance instead.
937 - wpesrc:
939 - implement audio support: a new sometimes source pad will be
941 - move wpesrc to wpevideosrc and add a wrapper bin wpesrc to also
943 - also handles web:// URIs now (same as cefsrc)
944 - post messages with the estimated load progress on the bus
946 - x265enc: add negative DTS support, which means timestamps are now
951 - rtpisacpay, rtpisacdepay: new RTP payloader and depayloader for iSAC
954 - rtph264depay:
956 - new "request-keyframe" property to make the depayloader
959 - new "wait-for-keyframe" property to make depayloader wait for a
964 - rtpopuspay, rtpopusdepay: support libwebrtc-compatible multichannel
968 - rtpopuspay: add DTX (Discontinuous Transmission) support
970 - rtpvp8depay: new "request-keyframe" property to make the depayloader
973 - rtpvp8pay: temporal scaling support
975 - rtpvp9depay: Improved SVC handling (aggregate all layers)
979 - rtpst2022-1-fecdec, rtpst2022-1-fecenc: new elements providing SMPTE
980 2022-1 2-D Forward Error Correction. More details in Mathieu’s blog
983 - rtpreddec: BUNDLE support
985 - rtpredenc, rtpulpfecenc: add support for Transport-wide Congestion
988 - rtpsession: new "twcc-feedback-interval" property to allow RTCP TWCC
989 reports to be scheduled on a timer instead of per marker-bit.
993 - There were no plugin moves or library moves in this cycle.
999 - The ofa audio fingerprinting plugin has been removed. The MusicIP
1003 - The mms plugin containing mmssrc has been removed. It seems unlikely
1014 - gst_buffer_new_memdup() is a convenience function for the
1015 widely-used gst_buffer_new_wrapped(g_memdup(data,size),size)
1018 - gst_caps_features_new_single() creates a new single GstCapsFeatures,
1022 - gst_element_type_set_skip_documentation() can be used by plugins to
1030 - gst_type_find_suggest_empty_simple() is a new convenience function
1034 - New API to create elements and set properties at construction time,
1036 have construct-only properties: gst_element_factory_make_full(),
1043 - GstSharedTaskPool: new “shared” task pool subclass with slightly
1047 pending tasks to those threads round-robin style, and blocks if no
1049 by plugins to implement simple multi-threaded processing and is used
1050 for the new multi-threaded video conversion and compositing done in
1055 - GstDiscoverer:
1057 - gst_discoverer_container_info_get_tags() was added to retrieve
1058 global/container tags (vs. per-stream tags). Per-Stream tags can
1063 in favour of the container/stream-specific functions.
1064 - gst_discoverer_stream_info_get_stream_number() returns a unique
1070 - gst_pb_utils_get_caps_description_flags() can be used to query
1075 - gst_pb_utils_get_file_extension_from_caps() returns a possible file
1078 - gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
1080 AVCC extradata/sequence_header is documented in the ITU-T H.264
1081 specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
1084 - gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
1086 field inside the Content-Type HTTP header for container formats,
1091 - glcolorconvert: added support for converting the video formats A420,
1094 - Added support to GstGLBuffer for persistent buffer mappings where a
1102 - Added various helper functions for handling 4x4 matrices of affine
1105 - Add support to GstGLContext for allowing the application to control
1119 - Add support for choosing between EGL and WGL at runtime when running
1120 on Windows. Previously this was a build-time switch. Allows use in
1125 - Build fixes to explicitly check for Broadcom-specific libraries on
1130 - Added support to glupload and gldownload for transferring RGBA
1132 of embedded devices.
1134 - Added support for choosing libOpenGL and libGLX as used in a GLVND
1135 environment on unix-based platforms. This allows using desktop
1141 - New raw video formats:
1143 - AV12 (NV12 with alpha plane)
1144 - RGBP and BGRP (planar RGB formats)
1145 - ARGB64 variants with specified endianness instead of host
1147 - ARGB64_LE, ARGB64_BE
1148 - RGBA64_BE, RGBA64_LE
1149 - BGRA64_BE, BGRA64_LE
1150 - ABGR64_BE, ABGR64_LE
1152 - gst_video_orientation_from_tag() is new convenience API to parse the
1155 - GstVideoDecoder subframe support (see below)
1157 - GstVideoCodecState now also carries some HDR metadata
1159 - Ancillary video data: implement transform functions for AFD/Bar
1162 MPEG-TS library
1167 - many additions and improvements to SCTE-35 section parsing
1168 - new API for fetching extended descriptors:
1170 - add support for SIT sections (Selection Information Tables)
1171 - expose event-from-section constructor gst_event_new_mpegts_section()
1172 - parse Audio Preselection Descriptor needed for Dolby AC-4
1176 - Change the way in which sink pads and transceivers are matched
1181 m-line already exists, that transceiver must match the new sink pad
1187 - webrtcbin now uses regular ICE nomination instead of libnice’s
1192 - Add support for limiting the port range used for RTP with the
1193 addition of the min-rtp-port and max-rtp-port properties on the ICE
1196 - Expose the SCTP transport as a property on webrtcbin to more closely
1199 - Added support for taking into account the data channel transport
1200 state when determining the value of the "connection-state" property.
1204 - Add configuration for choosing the size of the underlying sockets
1207 - Always advertise support for the transport-cc RTCP feedback protocol
1209 or through codec-preferences) need to include the relevant RTP
1212 - Numerous fixes to caps and media handling to fail-fast when an
1215 - Improved support for attaching the required media after a remote
1218 - Add support for dynamically changing the amount of FEC used for a
1221 - webrtcbin now stops further SDP processing at the first error it
1224 - Completed support for either local or the remote closing a data
1227 - Various fixes when performing BUNDLEing of the media streams in
1230 - Add support for writing out QoS DSCP marking on outgoing packets to
1233 - Improvements to the statistics returned by the get-stats signal
1237 - The webrtc library does not expose any objects anymore with public
1244 - Support for render delays to improve throughput across all CODECs
1246 - lots of improvements to parsers and the codec parsing decoder base
1247 classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
1248 hardware-accelerated decoder APIs.
1252 - gst_allocation_params_new() allocates a GstAllocationParams struct
1257 - gst_debug_log_literal() can be used to log a string to the debug log
1259 overhead. This is mostly useful for bindings such as the Rust
1262 - Provide non-inlined versions of refcounting APIs for various
1264 (e.g. gstreamer-sharp): gst_buffer_ref, gst_buffer_unref,
1282 - expose a GType for GstMiniObject
1284 - gst_device_provider_probe() now returns non-floating device object
1288 - gst_element_get_request_pad() has been deprecated in favour of the
1289 newly-added gst_element_request_pad_simple() which does the exact
1292 already-existing request pad.
1294 - gst_discoverer_info_get_tags(), which for many files returns a
1296 favour of the container-specific and stream-specific functions,
1300 - gst_video_sink_center_rect() was deprecated in favour of the more
1301 generic newly-added gst_video_center_rect().
1303 - The GST_MEMORY_FLAG_NO_SHARE flag has been deprecated, as it tends
1304 to cause problems and prevents sub-buffering. If pooling or lifetime
1309 - The GstPlayer high-level playback library is being replaced with the
1314 - Gstreamer Editing Services: ges_video_transition_set_border(),
1324 - v210 ↔ I420, YV12, Y42B, UYVY and YUY2
1325 - A420 → RGB
1329 - Better system clock wait accuracy, less jitter: where available,
1335 waits per second (for ex: video), it does introduce a non-negligible
1340 - The GstVideoDecoder base class gained API to process input at the
1341 sub-frame level. That way video decoders can start decoding slices
1346 - This functionality is now being used in the OpenJPEG JPEG 2000
1347 decoder, the FFmpeg H.264 decoder (in case of NAL-aligned input) and
1348 the OpenMAX H.264/H.265 decoders (in case of NAL-aligned input).
1352 - GstDeviceMonitor no longer fails to start just because one of the
1361 - On embedded systems it can be useful to create a registry that can
1367 - GstNetClientClock will signal lost sync in case the remote time
1371 - gst_value_deserialize_with_pspec() allows deserialisation with a
1376 - It’s now possible to create an empty GstVideoOverlayComposition
1383 - New factories tracer to list loaded elements (and other plugin
1388 - New plugin-feature-loaded tracing hook for use by tracers like the
1391 - GstHarness: Add gst_harness_set_live() so that harnesses can be set
1392 to non-live and return is-live=false in latency queries if needed.
1393 Default behaviour is to always return is-live=true in latency
1396 - navseek: new "hold-eos" property. When enabled, the element will
1402 - New fakeaudiosink element: mimics an audio sink and can be used for
1409 - New videocodectestsink element for video codec conformance testing:
1412 padding removed into a file for easy byte-by-byte comparison with
1417 gst-inspect-1.0
1419 - Can sort the list of plugins by passing --sort=name as command line
1422 gst-launch-1.0
1424 - will now error out on top-level properties that don’t exist and
1426 - On Windows the high-resolution clock is enabled now, which provides
1430 gst-play-1.0
1432 - New --start-position command line argument to start playback from
1434 - Audio can be muted/unmuted in interactive mode by pressing the m
1436 - On Windows the high-resolution clock is enabled now (see Windows
1439 gst-device-monitor-1.0
1441 - New --include-hidden command line argument to also show “hidden”
1444 ges-launch-1.0
1446 - New interactive mode that allows seeking and such. Can be disabled
1447 by passing the --no-interactive argument on the command line.
1448 - Option to forward tags
1449 - Allow using an existing clip to determine the rendering format (both
1450 topology and profile) via new --profile-from command line argument.
1454 - GstRTSPMediaFactory gained API to disable RTCP
1455 (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
1460 - Make a mount point of / work correctly. While not allowed by the
1463 gst-rtsp-server, e.g. rtsp://example.com/ would work with this now.
1469 - multithreading fixes (races, refcounting issues, deadlocks)
1471 - ONVIF audio backchannel fixes
1473 - ONVIF trick mode optimisations
1475 - rtspclientsink: new "update-sdp" signal that allows updating the SDP
1482 - new AV1 decoder element (vaapiav1dec)
1484 - H.264 decoder: handle stereoscopic 3D video with frame packing
1487 - H.265 encoder: added Screen Content Coding extensions support
1489 - H.265 decoder: gained MAIN_444_12 profile support (decoded to
1490 Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
1492 - vaapipostproc: gained BT2020 color standard support
1494 - vaapidecode: now generates caps templates dynamically at runtime in
1498 - GST_VAAPI_DRM_DEVICE environment variable to force a specified DRM
1505 - subframe support in H.264/H.265 decoders
1509 - framepositioner: new "operator" property to access blending modes in
1511 - timeline: Implement snapping to markers
1512 - smart-mixer: Add support for d3d11compositor and glvideomixer
1513 - titleclip: add "draw-shadow" child property
1514 - ges:// URI support to define a timeline from a description.
1515 - command-line-formatter
1516 - Add track management to timeline description
1517 - Add keyframe support
1518 - ges-launch-1.0:
1519 - Add an interactive mode where we can seek etc…
1520 - Add option to forward tags
1521 - Allow using an existing clip to determine the rendering format
1522 (both topology and profile) via new --profile-from command line
1524 - Fix static build
1528 - report: Add a way to force backtraces on reports even if not a
1530 - Add a flag to gst_validate_replace_variables_in_string() allow
1532 - Add gst_validate_bin_monitor_get_scenario() to get the bin monitor
1535 - Add an expected-values parameter to wait, message-type=XX allowing
1537 - Add config file support: each test can now use a config file for the
1539 - Add support to check properties of object properties
1540 - scenario: Add an "action-done" signal to signal when an action is
1542 - scenario: Add a "run-command" action type
1543 - scenario: Allow forcing running action on idle from scenario file
1544 - scenario: Allow iterating over arrays in foreach
1545 - scenario: Rename ‘interlaced’ action to ‘non-blocking’
1546 - scenario: Add a non-blocking flag to the wait signal
1550 - Fixes for Python 3.10
1551 - Various build fixes
1552 - at least one known breaking change caused by g-i annotation changes
1557 - Fix GstDebugGraphDetails enum
1558 - Updated to latest GtkSharp
1559 - Updated to include GStreamer 1.20 API
1561 GStreamer Rust Bindings and Rust Plugins
1563 - The GStreamer Rust bindings are released separately with a different
1564 release cadence that’s tied to gtk-rs, but the latest release has
1568 - gst-plugins-rs, the module containing GStreamer plugins written in
1569 Rust, has also seen lots of activity with many new elements and
1570 plugins. See the New Elements section above for a list of new Rust
1575 - Meson 0.59 or newer is now required to build GStreamer.
1577 - The GLib requirement has been bumped to GLib 2.56 or newer (from
1580 - The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
1582 - The souphttpsrc plugin is no longer linked against libsoup but
1585 of the libsoup runtimes to the gst-plugins-good package so that
1588 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
1590 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
1592 to allow (A)GPL-licensed dependencies by passing -Dgpl=enabled to Meson,
1595 See Building plugins with (A)GPL-licensed dependencies for more details
1596 and a non-exhaustive list of plugins affected.
1598 gst-build: replaced by mono repository
1610 - Plugin removed: libvisual
1611 - New plugins: rtpmanagerbad and rist
1615 - XCode 12 support
1616 - macOS OS release support is now future-proof, similar to iOS
1617 - macOS Apple Silicon (ARM64) cross-compile support has been added,
1620 - Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
1625 - Visual Studio 2022 support has been added
1626 - bootstrap is faster since it requires building fewer build-tools
1628 - package is faster due to better scheduling of recipe stages and
1630 - The following plugins are no longer built on Windows:
1631 - a52dec (another decoder is still available in libav)
1632 - dvdread
1633 - resindvd
1637 - no major changes
1641 - Fedora, Debian OS release support is now more future-proof
1642 - Amazon Linux 2 support has been added
1646 - no major changes
1648 Platform-specific changes and improvements
1652 - No major changes
1656 - applemedia: add ProRes support to vtenc and vtdec
1658 - The GStreamer.framework location is now relocatable and is not
1661 - Cerbero now supports cross-compiling to macOS running on Apple
1667 - On Windows the high-resolution clock is enabled now in the
1668 gst-launch-1.0 and gst-play-1.0 command line tools, which provides
1670 power consumption. By default, without the high-resolution clock
1671 enabled, the timer precision on Windows is system-dependent and may
1677 versions (pre-Windows 10) this affects a global Windows setting and
1678 also there’s a power consumption vs. performance trade-off that may
1681 - dxgiscreencapsrc now supports resolution changes
1683 - The wasapi2 audio plugin was rewritten and now has a higher rank
1686 known-but-hard-to-fix issues. The plugin is always built if the
1689 - The wasapi device providers now detect and notify dynamic device
1692 - d3d11screencapturesrc: new desktop capture element, including
1696 - Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
1699 - VP9 decoding got more reliable and stable thanks to a newly written
1702 - Support for decoding interlaced H.264/AVC streams
1704 - Hardware-accelerated video deinterlacing (d3d11deinterlace) and
1707 - Video mixing with the Direct3D11 API (d3d11compositor)
1709 - MediaFoundation API based hardware encoders gained the ability to
1712 - Seungha’s blog post “GStreamer ❤ Windows: A primer on the cool stuff
1714 Windows-related improvements in more detail
1718 - bluez: LDAC Bluetooth audio codec support in a2dpsink and avdtpsink,
1722 - kmssink: gained support for NV24, NV61, RGB16/BGR16 formats;
1723 auto-detect NVIDIA Tegra driver
1727 - hardware-accelerated GPU plugins will now no longer always list all
1729 system-dependent and it’s confusing for users to see those in the
1736 - gst_parse_launch(), gst_parse_bin_from_description() and friends
1738 top-level bins. They were silently ignored before.
1740 - The GstWebRTC library does not expose any objects anymore with
1745 - playbin and uridecodebin now emit the source-setup signal before the
1750 - The source element inside urisourcebin (used inside uridecodebin3
1752 shouldn’t affect anyone hopefully, because there’s a "setup-source"
1756 - The vp8enc element now expects bps (bits per second) for the
1757 "temporal-scalability-target-bitrate" property, which is consistent
1758 with the "target-bitrate" property. Since additional configuration
1762 - vp8enc and vp9enc now default to “good quality” for the "deadline"
1764 quality causes the encoder to be absurdly slow, most real-life users
1767 - The experimental GstTranscoder library API in gst-plugins-bad was
1768 changed from a GObject signal-based notification mechanism to a
1769 GstBus/message-based mechanism akin to GstPlayer/GstPlay.
1771 - MPEG-TS SCTE-35 API: semantic change for SCTE-35 splice commands:
1776 - The GstContext used by souphttpsrc to share the session between
1780 necessary because SoupSession is not thread-safe at all and can’t be
1783 - Python bindings: GObject-introspection related Annotation fixes have
1784 led to a case of a GstVideo.VideoInfo-related function signature
1793 - nothing in particular at this point (but also see possibly breaking
1812 Velázquez-García, François Laignel, Frederich Munch, Fredrik Pålsson,
1821 Lindgren, John-Mark Bell, Jonathan Matthew, Jordan Petridis, Jose
1842 Westrup, Théo MAILLART, Thibault Saunier, Tim, Timo Wischer, Tim-Philipp
1844 tyler-aicradle, U. Artie Eoff, Ung, Val Doroshchuk, VaL Doroshchuk,
1856 Krystian Wojtas, Marc-André Lureau, Marcin Kolny, Marc Leeman, Mark
1862 Wischer, Tim-Philipp Müller, Tobias Reineke, Tomasz Andrzejak, Trung Do,
1872 After the 1.20.0 release there will be several 1.20.x bug-fix releases
1875 a bug-fix release usually. The 1.20.x bug-fix releases will be made from
1884 The first 1.20 bug-fix release (1.20.1) was released on 14 March 2022.
1891 - deinterlace: various bug fixes for yadif and greedy methods
1892 - gtk video sink: Fix rotation not being applied when paused
1893 - gst-play-1.0: Fix trick-mode handling in keyboard shortcut
1894 - jpegdec: fix RGB conversion handling
1895 - matroskademux: improved ProRes video handling
1896 - matroskamux: Handle multiview-mode/flags/pixel-aspect-ratio caps
1898 - videoaggregator fixes (negative rate handling, current position
1900 - soup http plugin: Lookup libsoup dylib files on Apple platforms &
1902 - Support build against libfreeaptx in openaptx plugin
1903 - Fix linking issues on Illumos distros
1904 - GstPlay: Fix new error + warning parsing API (was unusuable before)
1905 - mpegtsmux: VBR muxing fixes
1906 - nvdecoder: Various fixes for 4:4:4 and high-bitdepth decoding
1907 - Support build against libfreeaptx in openaptx plugin
1908 - webrtc: Various fixes to the webrtc-sendrecv python example
1909 - macOS: support a relocatable GStreamer.framework on macOS (see below
1911 - macOS: fix applemedia plugin failing to load on ARM64 macOS
1912 - windows: ship wavpack library
1913 - gst-python: Fix build with Python 3.11
1914 - various bug fixes, memory leak fixes, and other stability and
1919 - plugin loader: show the reason when spawning of gst-plugin-scanner
1921 - registry, plugin loading: fix dynamic relocation if
1924 - context: fix transfer annotation on gst_context_writable_structure()
1926 - baseparse: Don’t truncate the duration to milliseconds in
1928 - bufferpool: Deactivate pool and get rid of references to other
1931 gst-plugins-base
1933 - typefindfunctions: Fix WebVTT format detection for very short files
1934 - gldisplay: Reorder GST_GL_WINDOW check for egl-device
1935 - rtpbasepayload: Copy all buffer metadata instead of just GstMetas
1937 - codec-utils: Avoid out-of-bounds error
1938 - navigation: Fix Since markers for mouse scroll events
1939 - videoaggregator: Fix for unhandled negative rate
1940 - videoaggregator: Use floor() to calculate current position
1941 - video-color: Fix for missing clipping in PQ EOTF function
1942 - gst-play-1.0: Fix trick-mode handling in keyboard shortcut
1943 - audiovisualizer: shader: Fix out of bound write
1945 gst-plugins-good
1947 - deinterlace: various bug fixes for yadif method
1948 - deinterlace: Refactor greedyh and fix planar formats
1949 - deinterlace: Prevent race between method configuration and latency
1951 - gtk video sink: Fix rotation not being applied when paused
1952 - jpegdec: fix RGB conversion handling
1953 - matroskademux: improved ProRes video handling
1954 - matroskamux: Handle multiview-mode/flags/pixel-aspect-ratio caps
1956 - rtprtx: don’t access type-system per buffer (performance
1958 - rtpulpfecenc: fix unmatched g_slice_free()
1959 - rtpvp8depay: fix crash when making GstRTPPacketLost custom event
1960 - qtmux: Don’t post an error message if pushing a sample failed with
1962 - soup: Lookup libsoup dylib files on Apple platforms & fix Cerbero
1964 - souphttpsrc: element not present on iOS after 1.20.0 update
1965 - v4l2tuner: return NULL if no norm set
1966 - v4l2bufferpool: Fix race condition between qbuf and pool streamoff
1967 - meson: Don’t build lame plugin with -Dlame=disabled
1969 gst-plugins-bad
1971 - GstPlay: Fix new error + warning parsing API (was unusuable before)
1972 - av1parse: let the parser continue on verbose OBUs
1973 - d3d11converter: Fix RGB to GRAY conversion, broken debug messages,
1975 - gs: look for google_cloud_cpp_storage.pc
1976 - ipcpipeline: fix crash and error on windows with SOCKET or _pipe()
1977 - ivfparse: Don’t set zero resolution on caps
1978 - mpegtsdemux: Handle PES headers bigger than a mpeg-ts packet; fix
1980 - mpegtsmux: Start last_ts with GST_CLOCK_TIME_NONE to fix VBR muxing
1982 - mpegtsmux: Thread safety fixes: lock mux->tsmux, the programs hash
1984 - mpegtsmux: Skip empty buffers
1985 - osxaudiodeviceprovider: Add initial support for duplex devices on
1987 - rtpldacpay: Fix missing payload information
1988 - sdpdemux: add media attributes to caps, fixes ptp clock handling
1989 - mfaudioenc: Handle empty IMFMediaBuffer
1990 - nvdecoder: Various fixes for 4:4:4 and high-bitdepth decoding
1991 - nvenc: Fix deadlock because of too strict buffer pool size
1992 - va: fix library build issues, caps leaks in the vpp transform
1994 - v4l2codecs: vp9: Minor fixes
1995 - v4l2codecs: h264: Correct scaling matrix ABI check
1996 - dtlstransport: Notify ICE transport property changes
1997 - webrtc: Various fixes to the webrtc-sendrecv python example
1998 - webrtc-ice: Fix memory leaks in gst_webrtc_ice_add_candidate()
1999 - Support build against libfreeaptx in openaptx plugin
2000 - Fix linking issues on Illumos distros
2002 gst-plugins-ugly
2004 - x264enc: fix plugin long-name and description
2006 gst-libav
2008 - No changes
2010 gst-rtsp-server
2012 - Fix race in rtsp-client when tunneling over HTTP
2014 gstreamer-vaapi
2016 - No changes
2018 gstreamer-sharp
2020 - No changes
2022 gst-omx
2024 - No changes
2026 gst-python
2028 - Fix build with Python 3.11
2030 gst-editing-services
2032 - Update validate test scenarios for videoaggregator rounding
2035 gst-integration-testsuites
2037 - Update validate test scenarios for videoaggregator rounding
2042 - gst-env: various clean-ups and documentation improvements
2046 - Fix nasm version check
2047 - Disable certificate checking on RHEL/CentOS 7
2048 - packages: Ship wavpack.dll for Windows
2049 - osx/universal: make the library name relocatable
2050 - macOS: In order to support a relocatable GStreamer.framework on
2055 - Disable MoltenVK on macOS arm64 to fix applemedia plugin loading
2056 - Fix applemedia plugin failing to load on ARM64 macOS
2068 Saunier, Tim Mooney, Tim-Philipp Müller, Víctor Manuel Jáquez Leal,
2076 - List of Merge Requests applied in 1.20.1
2077 - List of Issues fixed in 1.20.1
2081 The second 1.20 bug-fix release (1.20.2) was released on 2 May 2022.
2088 - avviddec: Remove vc1/wmv3 override and fix crashes on WMV files with
2090 - macOS: fix plugin discovery for GStreamer installed via brew and fix
2091 loading of Rust plugins
2092 - rtpbasepayload: various header extension handling fixes
2093 - rtpopusdepay: fix regression in stereo input handling if
2094 sprop-stereo is not advertised
2095 - rtspclientsink: fix possible shutdown deadlock
2096 - mpegts: gracefully handle “empty” program maps and fix AC-4
2098 - mxfdemux: Handle empty VANC packets and fix EOS handling
2099 - playbin3: various playbin3, uridecodebin3, and playsink fixes
2100 - ptpclock: fix initial sync-up with certain devices
2101 - gltransformation: let graphene alloc its structures memory aligned
2102 - webrtcbin fixes and webrtc sendrecv example improvements
2103 - video4linux2: various fixes including some fixes for Raspberry Pi
2105 - videorate segment handling fixes and other fixes
2106 - nvh264dec, nvh265dec: Fix broken key-unit trick modes and reverse
2108 - wpe: Reintroduce persistent WebContext
2109 - cerbero: Make it easier to consume 1.20.1 macOS GStreamer .pkgs
2110 - build fixes and gobject annotation fixes
2111 - bug fixes, security fixes, memory leak fixes, and other stability
2116 - devicemonitor: clean up signal handlers and hidden providers list
2117 - Leaks tracer: fix pthread_atfork return value check leading to bogus
2119 - Rust plugins: Not picked up by the plugin loader on macOS
2120 - Failed to use plugins of latest GStreamer version 1.20.x installed
2122 - ptpclock: Allow at least 100ms delay between Sync/Follow_Up and
2125 - meson: Add -Wl,-rpath,${libdir} on macOS
2126 - registry: skip Rust dep builddirs when searching for plugins
2129 gst-plugins-base
2131 - appsrc: Clarify buffer ref semantics in signals documentation
2132 - appsrc: fix annotations for bindings
2133 - typefind: Skip extension parsing for data:// URIs, fixing regression
2135 - playbin3: various fixes
2136 - playbin3: fix missing lock when unknown stream type in pad-removed
2138 - decodebin3: fix collection leaks
2139 - decodebin3: Don’t duplicate stream selections
2140 - discoverer: chain up to parent finalize methods in all our types to
2142 - glmixerbin: slightly better pad/element creation
2143 - gltransformation: let graphene alloc its structures memory aligned
2144 - ogg: fix possible buffer overrun
2145 - rtpbasepayload: Don’t write header extensions if there’s no
2147 - rtpbasepayload: always store input buffer meta before negotiation
2148 - rtpbasepayload: fix transfer annotation for push and push_list
2149 - subparse: don’t try to index string with -1
2150 - riff-media: fix memory leak after usage for g_strjoin()
2151 - playbin/playbin3: Allow setting a NULL URI
2152 - playsink: Complete reconfiguration on pad release.
2153 - parsebin: Expose streams of unknown type
2154 - pbutils: Fix wmv screen description detection
2155 - subparse: don’t deref a potentially NULL variable
2156 - rawvideoparse: set format from caps in
2158 - videodecoder: release stream lock after handling gap events
2159 - videorate: fix assertion when pushing last and only buffer without
2161 - videorate: Revert “don’t reset on segment update” to fix segment
2163 - gst-play-1.0, gst-launch-1.0: Enable win32 high-resolution timer
2166 gst-plugins-good
2168 - deinterlace: silence unused-but-set werror from imported code
2169 - qtdemux: fix leak of channel_mapping
2170 - rtpopusdepay: missing sprop-stereo should not assume mono
2171 - rtpjitterbuffer: Fix invalid memory access in
2173 - rtpptdemux: fix leak of caps when ignoring a pt
2174 - rtpredenc: quieten warning about ignoring header extensions
2175 - soup: Fix pre-processor macros in souploader for libsoup-3.0
2176 - twcc: Note that twcc-stats packet loss counts reordering as loss +
2178 - video4linux2: Manual backports for RPi users
2179 - wavparse: handle URI query in any parse state, fixing audio track
2181 - wavparse: Unset DISCONT buffer flag for divided into multiple
2184 gst-plugins-bad
2186 - av1parse: Fix several issues about the colorimetry.
2187 - av1parse: fix up various possible logic errors
2188 - dashsink: fix missing mutex unlock in error code path when failing
2190 - d3d11videosink: Fix for unhandled mouse double click events
2191 - interlace: Also handle a missing “interlace-mode” field as
2193 - msdk: fix build with MSVC
2194 - mxfdemux: Fix issues at EOS
2195 - mxfdemux: Handle empty VANC packets
2196 - nvh264dec, nvh265dec: Fix broken key-unit trick and reverse playback
2197 - nvvp9sldec: Increase DPB size to cover render delay
2198 - rvsg: fix cairo include
2199 - tsdemux: Fix AC-4 detection in MPEG-TS
2200 - tsdemux: Handle “empty” PMT gracefully
2201 - va: pool: don’t advertise the GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT
2203 - v4l2codecs: Fix memory leak
2204 - v4l2videodec: set frame duration according to framerate
2205 - webrtcbin: Update documentation of ‘get-stats’ action signal
2206 - webrtcbin: Check data channel transport for notifying
2207 ‘ice-gathering-state’
2208 - webrtcbin: Avoid access of freed memory
2209 - wpe: Reintroduce persistent WebContext
2210 - Build: use CMake to find some openssl and exr deps
2211 - Fix multiple “unused-but-set variable” compiler warnings
2213 gst-plugins-ugly
2215 - x264enc: Don’t try to fixate ANY allowed caps
2217 gst-libav
2219 - video decoders: fix frame leak on negotiation error
2220 - Fix build on systems without C++ compiler
2221 - avviddec: Remove vc1/wmv3 override (fixing crash with FFmpeg 5
2222 - Segfaults on ASF/WMV files with FFMPEG 5.0+
2224 gst-rtsp-server
2226 - rtspclientsink: fix possible shutdown deadlock in collect_streams()
2227 - Minor spelling fixes
2229 gstreamer-vaapi
2231 - No changes
2233 gstreamer-sharp
2235 - No changes
2237 gst-omx
2239 - No changes
2241 gst-python
2243 - Fix build on systems without C++ compiler
2245 gst-editing-services
2247 - License clarification: GES is released under the LGPL2+ license
2249 gst-examples:
2251 - Fix build on macOS with gtk+-quartz-3.0
2252 - player android: add missing dummy.cpp
2253 - player android: update for android changes
2254 - webrtc_sendrecv.py: Link pads instead of elements
2255 - webrtc_sendrecv.py: Implement all negotiation modes + bugfixes
2257 Development build environment + gst-full build
2259 - meson: provide gobject-cast-checks, glib-checks and glib-asserts
2264 - macOS: Make it easier to consume 1.20.1 GStreamer .pkgs
2265 - Android: fix text relocation regression on Android (x86/ x86_64
2270 - appsrc: fix annotations for bindings
2271 - bindings: The out args for gst_rtp_buffer_get_extension_data*() are
2273 - rtpbasepayload: fix transfer annotation for push and push_list
2277 Bastian Krause, Benjamin Gaignard, Camilo Celis Guzman, Chun-wei Fan,
2283 Saunier, Tim-Philipp Müller, Tong Wu, Tristan Matthews, Tulio Beloqui,
2291 - List of Merge Requests applied in 1.20.2
2292 - List of Issues fixed in 1.20.2
2296 The third 1.20 bug-fix release (1.20.3) was released on 15 June 2022.
2303 - Security fixes in Matroska, MP4 and AVI demuxers
2304 - Fix scrambled video playback with hardware-accelerated VA-API
2306 - playbin3/decodebin3 regression fix for unhandled streams
2307 - Fragmented MP4 playback fixes
2308 - Android H.265 encoder mapping
2309 - Playback of MXF files produced by FFmpeg before March 2022
2310 - Fix rtmp2sink crashes on 32-bit platforms
2311 - WebRTC improvements
2312 - D3D11 video decoder and screen recorder fixes
2313 - Performance improvements
2314 - Support for building against OpenCV 4.6 and other build fixes
2315 - Miscellaneous bug fixes, memory leak fixes, and other stability and
2320 - clock: Avoid creating a weakref with every entry (performance
2322 - plugin: add Apache 2 license to list of known licenses to avoid
2324 - gst_plugin_load_file: force plugin reload if filename differs
2325 - Add support for LoongArch
2329 - aggregator: Only send events up to CAPS event from
2332 - basetransform: handle gst_base_transform_query_caps() returning NULL
2333 - basetransform: fix critical if transform_caps() returned NULL
2334 - queuearray: Fix potential heap overflow when expanding GstQueueArray
2338 - multiqueue: fix potential crash on shutdown
2339 - multiqueue: fix warning: ‘is_query’ may be used uninitialized in
2341 - multiqueue: SegFault during flushing with gcc11
2343 gst-plugins-base
2345 - audioconvert: If no channel-mask can be fixated then use a NONE
2347 - playbin3: Configure combiner on pad-added if needed
2348 - parsebin: Fix assertions/regression when dealing with un-handled
2350 - appsink: Fix race condition on caps handling
2351 - oggdemux: Protect against invalid framerates
2352 - rtcpbuffer: Allow padding on first reduced size packets
2353 - gl: check for xlib-xcb.h header to fix build of tests on macOS with
2355 - videoaggregator: unref temporary caps
2356 - v4l2videoenc: Setup crop rectangle if needed
2360 - gst-play-1.0: Print position even if duration is unknown
2361 - gst-device-monitor-1.0: Print string property as-is without
2364 gst-plugins-good
2366 - aacparse: Avoid mismatch between src_caps and output_header_type
2367 - avidemux: Fix integer overflow resulting in heap corruption in DIB
2369 - deinterlace: Clean up error handling code
2370 - flvdemux: Actually make use of the debug category
2371 - gtkglsink: Fix double-free when OpenGL can’t be initialised
2372 - jack: Add support for detecting libjack on Windows
2373 - matroskademux: Avoid integer-overflow resulting in heap corruption
2375 - matroskademux, qtdemux: Fix integer overflows in zlib/bz2/etc
2377 - qtdemux: Don’t use tfdt for parsing subsequent trun boxes
2378 - rtpbin: Avoid holding GST_RTP_BIN_LOCK when emitting pad-added
2380 - rtpptdemux: Don’t GST_FLOW_ERROR when ignoring invalid packets
2381 - smpte: Fix integer overflow with possible heap corruption in GstMask
2383 - smpte: integer overflow with possible heap corruption in GstMask
2385 - soup: fix soup debug category initialisation
2386 - soup: Fix plugin/element init
2387 - v4l2: Reset transfer in gst_v4l2_object_acquire_format()
2388 - vpxenc: fix crash if encoder produces unmatching timestamp
2389 - wavparse: ensure that any pending segment is sent before an EOS
2392 gst-plugins-bad
2394 - androidmedia: Add H.265 encoder mapping
2395 - avfvideosrc: fix wrong framerate selected for caps
2396 - d3d11decoder: Fix for alternate interlacing signalling
2397 - d3d11decoder: Do not preallocate texture using downstream d3d11
2399 - d3d11decoder: Copy HDR10 related caps field manually
2400 - d3d11decoder: Work around Intel DXVA driver crash
2401 - d3d11screencapture: Set viewport when drawing mouse cursor
2402 - d3d11screencapture: Fix missing/outdated cursor shape
2403 - d3d11screencapturesrc: Fix crash when d3d11 device is different from
2405 - h264decoder: Fix for unhandled low-delay decoding case
2406 - matroskademux, qtdemux: Fix integer overflows in zlib/bz2/etc
2408 - mpegtsmux: Make sure to set srcpad caps under all conditions before
2410 - mpegtsmux: sends segment before caps
2411 - mxfdemux: Handle files produced by legacy FFmpeg
2412 - nvh264dec,nvh265dec: Don’t realloc bitstream buffer per slice
2413 - nvcodec: cuda-converter: fix nvrtc compilation on non-English locale
2415 - opencv: Allow building against 4.6.x
2416 - pcapparse: Set timestamp in DTS, not PTS
2417 - rtmp2: fix allocation of GstRtmpMeta which caused crashes on 32-bit
2419 - rtmp2sink crash on Android arm 32 - cerbero 1.20.2.0
2420 - sdpdemux: Release request pads from rtpbin when freeing a stream
2421 - va: Add O_CLOEXEC flag at opening drm device (so subprocesses won’t
2423 - webrtcbin: Reject answers that don’t contain the same number of
2424 m-line as offer
2425 - webrtc: datachannel: Notify low buffered amount according to spec
2427 gst-plugins-ugly
2429 - No changes
2431 gst-libav
2433 - No changes
2435 gst-rtsp-server
2437 - No changes
2439 gstreamer-vaapi
2441 - vaapi: Do not disable the whole vpp when some va operations not
2443 - vaapidecode, vaapipostproc: Disable DMAbuf from caps negotiation
2444 - scrambled video with some Intel graphics cards
2446 gstreamer-sharp
2448 - No changes
2450 gst-omx
2452 - No changes
2454 gst-python
2456 - No changes
2458 gst-editing-services
2460 - ges/videourisource: handle non-1/1 PAR source videos
2462 gst-examples:
2464 - No changes
2466 Development build environment + gst-full build
2468 - Update libnice subproject wrap to 0.1.19
2469 - meson: use better zlib dependency fallback
2470 - meson: Fix deprecation warnings
2474 - Set GSTREAMER_1_0_ROOT_[MSVC_]X86_64 root environment variable in
2476 - bootstrap: Add perl-FindBin dep needed by openssl (which is not
2478 - Also add build-tools/local/bin to PATH on Linux
2479 - Add a variant to control building of the JACK plugin
2480 - libnice: update to 0.1.19 (fixes some WebRTC issues)
2481 - zlib: update to 1.2.12
2485 - No changes
2490 Hobson-Garcia, Diogo Goncalves, Edward Hervey, Eli Schwartz, Erwann
2495 Stéphane Cerveau, Thibault Saunier, Tim-Philipp Müller, Tom Schuring, U.
2503 - List of Merge Requests applied in 1.20.3
2504 - List of Issues fixed in 1.20.3
2513 no major project-wide reorganisations in the 1.22 cycle we might try and
2516 1.22 will be backwards-compatible to the stable 1.20, 1.18, 1.16, 1.14,
2519 ------------------------------------------------------------------------
2521 These release notes have been prepared by Tim-Philipp Müller with
2525 License: CC BY-SA 4.0