- Mar 15, 2021
-
-
The old code had a couple of issues that all lead to potential memory safety bugs. - Use a constant for the Wavpack4Header size instead of using sizeof. It's written out into the data and not from the struct and who knows what special alignment/padding requirements some C compilers have. - gst_buffer_set_size() does not realloc the buffer when setting a bigger size than allocated, it only allows growing up to the maximum allocated size. Instead use a GstAdapter to collect all the blocks and take out everything at once in the end. - Check that enough data is actually available in the input and otherwise handle it an error in all cases instead of silently ignoring it. Among other things this fixes out of bounds writes because the code assumed gst_buffer_set_size() can grow the buffer and simply wrote after the end of the buffer. Thanks to Natalie Silvanovich for reporting. Fixes gstreamer/gst-plugins-good#859 Part-of: <gstreamer/gst-plugins-good!903>
-
Various error return paths don't set it to NULL and callers are only checking if the pointer is NULL. As it's allocated on the stack this usually contains random stack memory, and more often than not the memory of a previously parsed track. This then causes all kinds of memory corruptions further down the line. Thanks to Natalie Silvanovich for reporting. Fixes #858 Part-of: <!903>
- Mar 12, 2021
-
-
V4L2 makes no difference between the BT.601 and BT.709 transfer functions [1], but GStreamer does since 1.18 [2]. Adapt gst_v4l2_object_get_colorspace() and gst_v4l2_object_set_format_full(). [1] https://linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/colorspaces-details.html#colorspace-smpte-170m-v4l2-colorspace-smpte170m [2] gstreamer/gst-plugins-base!724 Part-of: <gstreamer/gst-plugins-good!900>
-
- Mar 09, 2021
-
-
This commit negotiate F32 audio format if MODE_FLOAT used in wavpack file. Wavpack float mode is always in 32-bit IEEE format. The following pipeline plays distorted audio if source file is encoded in float mode: gst-launch-1.0 filesrc ... ! wavpackparse ! wavpackdec ! pulsesink Part-of: <gstreamer/gst-plugins-good!896>
-
- Mar 03, 2021
-
-
Vp8/vp9 supported profiles/levels are listed in decoder sink caps, but there is no parser for these two formats and the demuxers also don't have these information. It causes negotiation fail between demuxers and decoder when check caps "accept = gst_caps_is_subset (caps, template_caps);". To fix this, need to remove profiles/levels for vp8/vp9 formats in decoder sink caps. Fix #854 Part-of: <!890>
-
- Feb 25, 2021
-
-
Negotiating v4l2h264dec ! v4l2h264enc transcoding pipelines fails in case the encoder does not accept framerate=(fraction)0/1. The acquired caps used for downstream negotiation are determined from gst_v4l2_object_acquire_format(), which sets the GstVideoInfo::fps_n and ::fps_d fields to 0. To fix this, copy the frame rate from the sink side. Part-of: <!884>
-
- Feb 24, 2021
- Feb 17, 2021
-
-
wavenc: Fixed INFO chunk corruption, caused by odd sized data not being padded. Code style was updated. Part-of: <!877>
-
- Feb 16, 2021
-
-
Resolution change stream transcoding will drain before send new video frame buffer. Need encode video frame after process EOS. Part-of: <!872>
-
- Jan 28, 2021
-
-
Keep HEVC profile compatible with other module. Part-of: <!864>
-
- Jan 27, 2021
- Jan 14, 2021
-
-
Tim-Philipp Müller authored
-
- Jan 13, 2021
-
-
Map V4L2_PIX_FMT_RGBA32 pixel format to GST_VIDEO_FORMAT_RGBA instead of GST_VIDEO_FORMAT_RGB video format to support RGBA. Fixes #823 Part-of: <gstreamer/gst-plugins-good!851>
-
A classic case of not enough locking. One interesting thing with this is the interaction between the rotation value and caps negotiation. i.e. the width/height of the caps can be swapped depending on the video-direction property. We can't lock the entirety of the caps negotiation for obvious reasons so we need to do something else. This takes the approach of trying to use a single rotation value throughout the entirety of the negotiation and then subsequent output frame in a kind of latching sequence. Fixes: gstreamer/gst-plugins-good#792 Part-of: <gstreamer/gst-plugins-good!847>
-
Part-of: <!847>
- Dec 30, 2020
-
-
This is due to a bug in meson where it will not detect properly the compiler if the symbols need an undercore. https://github.com/mesonbuild/meson/issues/5482 Fixes #821 Part-of: <!846>
-
- Dec 17, 2020
-
-
Might not drain correctly Part-of: <gstreamer/gst-plugins-good!843>
-
- Dec 14, 2020
-
-
Check the sequence of format-location/fragment-opened/fragment-closed events is respected. There should be 1 format-location call for each fragment-opened message, and 1 fragment-closed for each. Part-of: <!840>
-
!798 introduced a check in the need-new-fragment logic to avoid starting a new fragment unless there has been some data on the reference stream, but the check is done against the number of bytes that have been received on the input, not the number that were released for output into the current fragment. Fix the check to remember and test against bytes that have been sent for output. This also fixes a problem where starting a new fragment fails to request a new filename from the format-location signal. Part-of: <!840>
-
When posting fragment-opened and fragment-closed messages, put a debug statement in the logs Part-of: <!840>
-
Change some g_assert into element errors so that they can be caught and the pipeline shut down. Part-of: <!840>
-
- Dec 06, 2020
-
-
Tim-Philipp Müller authored
-
- Dec 02, 2020
-
-
fix: undefined reference to `vc_gencmd' /usr/src/debug/gstreamer1.0-plugins-good/1.18.1-r0/build/../gst-plugins-good-1.18.1/sys/rpicamsrc/RaspiCamControl.c:1440: undefined reference to `vc_gencmd' Part-of: <gstreamer/gst-plugins-good!829>
-
- Nov 24, 2020
-
-
We need to remove x86inc.asm from the list of compiled assembly files because it is not supposed to be compiled separately. It is directly included by yadif.asm, and it exports no symbols. The object file was getting ignored on all platforms except on msvc where it was causing a linker hang when building with debugging enabled because the object file had no debug symbols (or similar). We've seen this before in FFmpeg too, which uses nasm: gstreamer/meson-ports/ffmpeg!46 Part-of: <gstreamer/gst-plugins-good!826>
-
- Nov 21, 2020
-
-
Release pads by calling up into aggregator so it can do the right things. Don't clean up the pad until after that. Add some missing locks around some accesses to shared pad state. Part-of: <gstreamer/gst-plugins-good!800>
-
- Nov 18, 2020
-
-
gst_caps_simplify() will move interlace format before normal video format. It will cause caps negotiate prefer interlaced caps which isn't expected. Seperate normal caps and interlaced caps and then merge it will keep prefer progress video format. Add ARGB/BGRA for interlaced caps. Fixes gstreamer/gst-plugins-good#802 Part-of <gstreamer/gst-plugins-good!813> Part-of: <gstreamer/gst-plugins-good!821>
-
- Nov 16, 2020
-
-
In baseparse we set the fixed caps flag on all src pads, therefore the source pad caps query in get_allowed_caps will return the current caps. Current caps won't necessarily intersect with the new caps (e.g. sample rate change). Replace get_allowed_caps with peer_query_caps. Part-of: <gstreamer/gst-plugins-good!819>
-
- Nov 11, 2020
-
-
Part-of: <gstreamer/gst-plugins-good!814>
-
Part-of: <gstreamer/gst-plugins-good!814>
-
- Nov 02, 2020
-
-
See gstreamer/gst-plugins-good!797 Part-of: <gstreamer/gst-plugins-good!803>
-
- Oct 31, 2020
-
-
Fix a comment in the splitmuxsrc robust muxing test so it describes the test properly. Part-of: <gstreamer/gst-plugins-good!799>
-
Add a new state for ending the overall stream, and use it to decide whether to pass the final EOS message up the bus instead of dropping it. Fixes a small race that makes the testsuite sometimes not generate the last fragment(s) sometimes because the wrong EOS gets allowed through too early. Part-of: <gstreamer/gst-plugins-good!799>
-
Using the element state lock to avoid splitmuxsink shutting down while doing element manipulations can lead to a deadlock on shutdown if a fragment switch happens at exactly the wrong moment. Use a private mutex and a shutdown boolean instead. Part-of: <gstreamer/gst-plugins-good!799>
-
If a pad gets into the check_completed_gop method and then the underlying conditions change on the reference context, things could get stuck in a busy loop when the context should instead jump back out and wait for more data. Part-of: <gstreamer/gst-plugins-good!799>
-
Make sure that any late gst_element_call_async() callbacks know that the elements is shutting down and bail out instead of operating on the element we're trying to stop. Fixes a spurious test failure in elements_splitmuxsrc Part-of: <gstreamer/gst-plugins-good!799>
-
Re-enable forwarding EOS messages from fragments that are completing asynchronously, so that splitmuxsink itself won't go EOS until they are complete. This was disabled to work around a bug in core that is fixed in gstreamer/gstreamer!683 Part-of: <gstreamer/gst-plugins-good!799>
-
If there has been no bytes from the reference stream muxed into the current fragment, then time can't have advanced, there's no GOP... this fragment would be broken or empty, so wait for some data on the reference buffer. Part-of: <gstreamer/gst-plugins-good!799>
-