summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Back to development1.18Tim-Philipp Müller2022-02-022-5/+5
|
* Release 1.18.61.18.6Tim-Philipp Müller2022-02-026-21/+288
|
* rtspsrc: Fix critical while serializing timeout element messageNirbheek Chauhan2022-01-281-2/+20
| | | | | | | | | | The "cause" field wasn't registered as a GEnumValue, so do that. Fixes this critical in gst_structure_to_string(): `gst_value_serialize: assertion 'G_IS_VALUE (value)' failed` Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1111>
* multifilesrc: fix caps leakCélestin Marot2022-01-171-0/+1
| | | | | | | | since `gst_caps_replace()` and `gst_pad_set_caps()` both ref the caps and neither of them takes the ownership of the caps -> it must be unreffed in `gst_multi_file_src_set_property()` to test the leak (on Unix): `echo coucou > /tmp/file.txt && GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7" gst-launch-1.0 multifilesrc location=/tmp/file.txt caps='txt' ! fakesink` Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1109>
* shout2: Add compatibility for libshout >= 2.4.2Tobias Reineke2021-11-201-0/+6
| | | | | | | | | | | | | In libshout >=2.4.2 shout_open() can return SHOUTERR_RETRY in addition to SHOUTERR_BUSY. The nonblocking example in libshout fixes the problem in a similar way, as mentioned by the author in this issue: https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2316 Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/848 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1108>
* v4l2: Update fmt if padded height is greater than fmt heightTrung Do2021-11-201-0/+12
| | | | | | | If padded height is greater, buffer bytesused could be larger than plane length, and cause VIDIOC_QBUF failure. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1107>
* v4l2bufferpool: set video alignment of video metaHaihua Hu2021-11-201-2/+6
| | | | | | | need apply video alignment info on video meta, downstream element can get buffer alignment from video meta Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1106>
* qtmux: Fix deadlock in gst_qt_mux_prepare_moov_recoveryErlend Eriksen2021-11-051-5/+1
| | | | | | Regression from 5766731bd4200c3a374522a749386f740347661a Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1102>
* matroska: Add support for muxing/demuxing ffv1Sebastian Dröge2021-10-294-2/+23
| | | | | | | | | | | Previously only demuxing when stored via the RIFF/AVI mapping was supported. See https://github.com/FFmpeg/FFV1/blob/master/ffv1.md#matroska-file-format Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/923 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1101>
* qtdemux: Try to build AAC codec-data whenever it's possibleSeungha Yang2021-10-291-21/+35
| | | | | | | | | | AAC codec_data is a just collection of AAC profile, samplerate, and channels. We can know samplerate and channels from parsed SampleEntry data. Although the AAC profile is unknown there, let's assume it as AAC-LC like we've been doing for the version 1 atom. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1100>
* Back to developmentTim-Philipp Müller2021-09-092-5/+5
|
* Release 1.18.51.18.5Tim-Philipp Müller2021-09-086-13/+764
|
* jpegdec: Fix crash when interlaced field height is not DCT block size alignedSeungha Yang2021-09-071-3/+8
| | | | | | | In case of interlaced JPEG file, we are doubling stride. The scratch scan line should take account of it as well. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1042>
* rtspsrc: Remove some dead codeNirbheek Chauhan2021-09-071-9/+0
| | | | | | | stop is not used after this point, nor do we create a new segment here since 84725d62b57bc74ce34abde755f35bf8f948f94d Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1076>
* rtspsrc: Do not overwrite the known duration after a seekNirbheek Chauhan2021-09-071-1/+0
| | | | | | | | This breaks the duration query and also the seeking query. Broke in 5f1a732bc7b76a6f1b8aa5f26b6e76fbca0261c7 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1076>
* rtspsrc: Just assign the segment instead of memcpyNirbheek Chauhan2021-09-071-3/+3
| | | | | | Assignments copy by value, we don't need to memcpy... Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1076>
* rtspsrc: De-dup seek event seqnums to avoid multiple seeksNirbheek Chauhan2021-09-061-1/+9
| | | | | | | | | | Seek events are sent upstream on each sink, so if we receive multiple seeks with the same seqnum, we must only perform one seek, not N seeks where N = the number of sinks in the pipeline connected to rtspsrc. This is the same thing done by demuxers like qtdemux or matrsokademux. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1075>
* splitmuxsink: always use factory property when setMathieu Duponchelle2021-09-061-1/+3
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1074>
* avidemux: Also detect 0x000001 as H264 byte-stream start code in codec_dataSebastian Dröge2021-09-021-30/+29
| | | | | | | | This works around some AVI files storing byte-stream data in the codec_data. The previous workaround was only checking for 0x00000001 (4 bytes) instead of 0x000001 (3 bytes). Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1073>
* qtdemux: Force stream-start push when re-using EOS'd streamsEdward Hervey2021-08-281-2/+3
| | | | | | | | When re-using streams, we *do* need to push a `stream-start` event downstream if we previously were EOS'd. Failure to do that would never remove the EOS status on all downstream elements and cause weird issues. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1068>
* qtdemux: add depth for ProRes 4:4:4:4 variants if availableTim-Philipp Müller2021-08-241-0/+12
| | | | | | | Might be 24bpp in case an alpha channel is coded but the image is always opaque. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1062>
* qtmux: for Apple ProRes, allow overriding pixel bit depth for 4:4:4:4 variantsRuslan Khamidullin2021-08-241-1/+1
| | | | | | | | | | | e.g. when exporting an opaque image, yet with alpha channel. Apple ProRes certification requires that, when a ProRes-writing application *knows* that the entire frame is opaque, the application writes only RGB without alpha even when the clip is RGBA. For that, this tiny change allows the app to override pixel depth when writing ProRes. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1062>
* rtph265depay: update codec_data in caps regardless of formatNirbheek Chauhan2021-08-231-29/+2
| | | | | | | | | | | | Updating of codec_data in the caps is important to propagate changes in sps/pps/vps via NALs. Without this, downstream does not renegotiate when upstream changes resolution. The comment referring to rtph264pay is from 2015 and is out of date. rtph264pay stopped doing that in 2017 with commit dabeed52a995d27e16eba9e4617e61eb0bcd44c4 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1025>
* souphttpsrc: Always use the content decoder but set `Accept-Encoding: ↵Sebastian Dröge2021-08-151-2/+4
| | | | | | | | | | | | | | identity` if no compression should be used Some servers respond with gzip-encoded responses regardless of whether the request allowed it to be used in the response. By always having the content decoder enabled, these invalid responses can be decoded correctly while for well-behaving servers the `compress` property selects between allowing compressed responses or not. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/833 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1054>
* rtpssrcdemux: Remove pads and reset the element also in READY->NULLSebastian Dröge2021-07-081-1/+1
| | | | | | Mostly for completeness. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1027>
* rtpptdemux: Remove pads also in PAUSED->READYSebastian Dröge2021-07-081-1/+1
| | | | | | | They're based on per-stream information and that should be reset whenever going to READY state. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1027>
* multiudpsink: Fix broken SO_SNDBUF get/set on WindowsSeungha Yang2021-07-081-25/+22
| | | | | | | | | SO_SNDBUF has been undefined on Windows because of missing WinSock2.h include. And don't use native socket functions (e.g., setsockopt()) if code is expected to be built on Windows. We don't link ws2_32.lib for this plugin. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1026>
* qmlglsink: Keep old buffers around a bit longer if they were bound by QMLSebastian Dröge2021-06-113-0/+75
| | | | | | | We don't know exactly when QML will stop using them but it should be safe to unref them after at least 2 more buffers were bound. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1009>
* qtitem: don't potentially leak a large number of buffersMatthew Waters2021-06-031-0/+11
| | | | | | | | The only other place where these queued buffers are removed, is in setCaps() but that is not called at all on shutdown so this list of buffers could not be removed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1005>
* rtpjpegpay: fix image corruption when compiled with MSVC on WindowsTim-Philipp Müller2021-06-021-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | On Windows with MSVC, jpeg_header_size would end up 2 bytes larger than it should be. This then leads to the first 2 bytes of the actual jpeg image data to be dropped, because we think those belong to the header, which results in an undecodable image when reconstructed in the depayloader. What happens is that when the compiler evaluates jpeg_header_size = mem.offset + read_u16_and_inc_offset_by_2(&mem); it actually uses the mem.offset value after it has been increased by the function call on the right hand size of the equation. From section 6.5 of the C99 spec: 3. The grouping of operators and operands is indicated by the syntax [74]. Except as specified later (for the function-call (), &&, ||, ?:, and comma operators), the order of evaluation of subexpressions and the order in which side effects take place are both unspecified. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/889 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1003>
* deinterlace: Drop "field-order" field while transforming capsSeungha Yang2021-06-011-2/+9
| | | | | | | Like other basetransform subclasses are doing, drop field which can be converted by deinterlace. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1001>
* deinterlace: Drop field-order field if outputting progressiveSeungha Yang2021-06-011-0/+5
| | | | | | Progressive with field-order doesn't make sense Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1001>
* wavparse: use g_strndup() for copying text dataTim-Philipp Müller2021-06-011-2/+2
| | | | | | So we don't rely on NUL terminators inside the data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1000>
* wavparse: clean up adtl/note/labl chunk parsingTim-Philipp Müller2021-06-011-4/+2
| | | | | | | | | We were passing the size of the adtl chunk to the note/labl sub-chunk parsing function, which means we may memdup lots of data after the chunk string's NUL terminator that doesn't really belong to it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1000>
* wavparse: guard against overflow when comparing chunk sizesTim-Philipp Müller2021-06-011-1/+1
| | | | | | | | Could be rewritten as lsize > (size - 8) a well, but the extra check seems clearer. Doesn't look like it was problematic, lsize wasn't actually used when parsing the sub-chunks. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1000>
* udpsrc: Plug leaks of saddr in error casesJan Alexander Steffens (heftig)2021-05-141-0/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/986>
* udpsrc: WhitespaceJan Alexander Steffens (heftig)2021-05-141-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/986>
* deinterlace: Plug a method subobject leakJan Alexander Steffens (heftig)2021-05-141-1/+1
| | | | | | Changing the method would leak the previous method. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/985>
* qtmux: Make sure to write 64-bit STCO table when needed.Jan Schmidt2021-04-302-7/+24
| | | | | | | | | | | | | | | | | | qtmux attempts to choose between writing a 32-bit stco chunk offset table when it can, but switch to a 64-bit co64 table when file offsets go over 4GB. This patch fixes a problem where the atom handling code was checking mdat-relative offsets instead of the final file offset (computed by adding the mdat position plus the mdat-relative offset) - leading to problems where files with a size between 4GB and 4GB+offset-of-the-mdat would write incorrect STCO tables with some samples having truncated 32-bit offsets. Smaller files write STCO correctly, larger files would switch to co64 and also output correctly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/972>
* v4l2object: Add interlace-mode back to caps for cameraHou Qi2021-04-301-8/+19
| | | | | | | | | | | | | | | | skip_try_fmt_probes is set to TRUE for v4l2src to skip interlace-mode and colorimetry when probe caps. gst_v4l2_object_set_format_full() will add colorimetry back to caps when iterating over the negotiated caps. There is one case that v4l2src is first in preview state then starts recording. v4l2src caps will change with an additional interlace-mode structure after renegotiation, then v4l2src needs to reset. But this camera driver can't orphan buffer pool, it causes require buffer failed as streaming is still in active state. To fix this, also need to add interlace-mode back to caps for camera to avoid reset. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/971>
* rtpjitterbuffer: Avoid generation of invalid timestampsEdward Hervey2021-04-221-3/+32
| | | | | | | | | | When updating timestamps and timer timeouts with a new offset, make sure that the resulting value is valid (and not a negative (signed) value which ends up in a massive (unsigned) value). Fixes #571 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/963>
* rtspsrc: Fix race saving seek event seqnum.Doug Nazar2021-04-201-5/+5
| | | | | | | | We need to save the seek seqnum before the flush stop event since that will start the basesrc task which may send the segment event before we're ready. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/957>
* rtpjitterbuffer: Check srcresult before waiting on the condition variable tooSebastian Dröge2021-04-141-0/+4
| | | | | | | It might've been set to FLUSHING between the last check and the waiting, and in that case we'd be waiting here forever now. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/948>
* rtspsrc: Using multicast UDP has no relation to seekabilityNirbheek Chauhan2021-04-131-2/+1
| | | | | | | The transport has no relation to whether a media can be seeked. The range response having a duration is the correct thing to check for. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/947>
* rtspsrc: Add more logging for range parsing and seekableNirbheek Chauhan2021-04-131-1/+9
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/947>
* rtpjitterbuffer: More logging when calculating rfc7273 timestampsNirbheek Chauhan2021-04-131-2/+8
| | | | | | | | | This code can be fragile, since it is very exacting in the timestamps that it will accept. Add more logging so it's easier to debug issues and figure out whether it's a bug in the calculation or something wrong in the incoming buffers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/946>
* gst: don't use volatile to mean atomicMatthew Waters2021-04-1314-25/+25
| | | | | | | | | | | | volatile is not sufficient to provide atomic guarantees and real atomics should be used instead. GCC 11 has started warning about using volatile with atomic operations. https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/941>
* v4l2object: Use default colorimetry if that in caps is unknownHou Qi2021-04-011-0/+10
| | | | | | | | | | | Some streams have unknown colorimetry in caps, but v4l2object sets default values for each primaries. It will cause check colorimetry fail when do gst_v4l2_video_colorimetry_matches(). To fix this, need to keep the unknown colorimetry in caps same as the default value set by v4l2object. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/930>
* v4l2object: Avoid colorimetry mismatch for streams with invalid colorimetryHou Qi2021-03-251-7/+6
| | | | | | | | | | | | video-info sets gst colorimetry to default value when colorimetry in caps is unparsable or invalid. Then v4l2object uses this gst colorimetry to do mapping with v4l2 colorimetry. This may cause colorimetry mismatch when check mapped gst colorimetry with that read from caps directly. To fix this, need to correct gst colorimetry as that parsed from video-info when check gst_v4l2_video_colorimetry_matches(). Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/922>
* v4l2object: Add support for hdr10 stream playbackHou Qi2021-03-251-0/+6
| | | | | | | | Colorimetry of hdr10 video is bt2100-pq with transfer as GST_VIDEO_TRANSFER_SMPTE2084. So map GST_VIDEO_TRANSFER_SMPTE2084 to V4L2_XFER_FUNC_SMPTE2084 to support hdr10 stream playback. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/921>