summaryrefslogtreecommitdiff
path: root/gst
Commit message (Collapse)AuthorAgeFilesLines
* avwait: Don't post messages with the mutex lockedSebastian Dröge2021-03-091-41/+91
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2063>
* interlace: Discard stored_frame on EOS and PAUSED_TO_READYVivia Nikolaidou2021-03-081-0/+7
| | | | | | Would otherwise leak it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2062>
* interlace: Specify interlace-modes in the sink pad templateVivia Nikolaidou2021-03-081-2/+8
| | | | | | | | | | Especially specify the field-order in the interleaved mode. Otherwise it might cause the negotiation to fail, because GST_PAD_SET_ACCEPT_INTERSECT is not set on the sinkpad, and the field-order is missing in the sink template but can be present in the outside caps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2062>
* interlace: add more formats, esp 10-bit, 12-bit and 16-bit onesTim-Philipp Müller2021-03-031-4/+27
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2054>
* mpegtsparse: Fix switched DTS/PTS when set-timestamps=falseJan Alexander Steffens (heftig)2021-03-011-2/+2
| | | | | | Fixes 30ee21eae36e7279f63b77167ba1dcf5f70b8e83. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2047>
* sdpsrc: fix double free if sdp is provided as string via the propertyTim-Philipp Müller2021-02-191-1/+4
| | | | | | Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1532 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2025>
* h264parse: don't invalidate the last PPS when parsing a new SPSMichael Olbrich2021-02-171-1/+1
| | | | | | | | | | | | When a SPS is received then any previous PPS remains valid. So don't clear the PPS flag from the parser state. This is important because there are encoders that don't generated a PPS after every SPS. Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/571 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2019>
* h265parse: Detect height change on field-based interlaced filesVivia Nikolaidou2021-02-171-2/+4
| | | | | | | | | | | The first time update_src_caps is called, there's no frame parsed yet, therefore we don't know whether the file has alternate-field interlacing mode. If we run it again after we have a frame, it might be that now we have the SEI pic_struct parsed, and therefore we know that it's field-based interlaced, and therefore the height must be multiplied by two. Earlier on this was not detected as a change. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2022>
* h265parse: Fix FPS/duration for interlaced filesVivia Nikolaidou2021-02-171-43/+61
| | | | | | There can be h265 files with frame-based, not field-based, interlacing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2020>
* h264parse: fix timestamping of interlaced fields in outputMathieu Duponchelle2021-02-161-3/+100
| | | | | | | | | | | | | | | | | | | | | Instead of relying on GstBaseParse default behaviour of computing the duration of a parsed buffer based on the framerate passed to gst_base_parse_set_framerate(), we instead compute the duration ourselves, as we have more information available. In particular, this means we now output buffers with a duration that matches that of raw interlaced buffers when each field is output in a separate buffer. This fixes DTS interpolation performed by GstBaseParse, as the previous behaviour of outputting each field with the duration of a full frame was messing up the base class calculations. When not enough information is available, h264parse simply falls back to calculating the duration based on the framerate and hope for the best as was the case previously. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1973>
* h265parse: Support for alternate-field interlacingVivia Nikolaidou2021-02-032-4/+35
| | | | | | Also don't set interlacing information on the caps, see #1313 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1996>
* h264/h265parse: Add VideoTimeCodeMeta to the outgoing bufferJan Alexander Steffens (heftig)2021-02-022-17/+17
| | | | | | | | | | | | The parsers attempted to add the meta to the incoming buffer, which might not be the outgoing buffer or may not have been writable yet. To fix this, call `gst_buffer_make_writable` earlier and make sure to use the `parse_buffer` to add the meta. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1521 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2002>
* av1parse: set the default alignment for input and output.He Junyan2021-01-261-6/+7
| | | | | | | | | | | 1. Set the default output alignment to frame, rather than current alignment of obu. This make it the same behaviour as h264/h265 parse, which default align to AU. 2. Set the default input alignment to byte. It can handle the "not enough data" error while the OBU alignment can not. Also make it conform to the comments. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
* av1parse: Reset the annex_b when meet TU inside a buffer.He Junyan2021-01-261-0/+3
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
* av1parse: Output each OBU when output is aligned to obu.He Junyan2021-01-261-41/+42
| | | | | | | | | The current behaviour for obu aligned output is not very precise. Several OBUs will be output together within one gst buffer. We should output each gst buffer just containing one OBU. This is the same way as the h264/h265 parse do when NAL aligned. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
* av1parse: Always copy the OBU to cache.He Junyan2021-01-261-40/+44
| | | | | | | | | | | The current optimization when input align and out out align are the same is not very correct. We simply copy the data from input buffer to output buffer, but we failed to consider the dropping of OBUs. When we need to drop some OBUs(such as filter out the OBUs of some temporal ID), we can not do simple copy. So we need to always copy the input OBUs into a cache. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
* av1parse: Improve the logic when to drop the OBU.He Junyan2021-01-261-15/+9
| | | | | | | When drop some OBU, we need to go on. The current manner will make the data access out range of the buffer mapping. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
* av1parse: Fix some issues in the src caps.He Junyan2021-01-231-17/+26
| | | | | | | | | | | 1. Add the mono_chrome to identify 4:0:0 chroma-format. 2. Correct the mapping between subsampling_x/y and chroma-format. There is no 4:4:0 format definition in AV1. And 4:4:4 should let both subsampling_x/y be equal to 0. 3. Send the chroma-format when the color space is not RGB. Fixes: #1502 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1974>
* vp9parse: Fix the subsampling_x/y to chroma format mapping.He Junyan2021-01-231-2/+2
| | | | | | | | The chroma format 4:4:4 needs both subsampling_x and subsampling_y equal to 0. Fixes: #1502 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1974>
* videoparsers: av1: Add the AV1 parse.He Junyan2021-01-194-0/+1743
| | | | | | | | | | | | This AV1 parse implements the conversion between alignment of obu, tu and frame, and the conversion between stream-format of obu-stream and annexb. TODO: 1. May need a property of operating_point to filter the OBUs 2. May add a property to disable deep parse. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1614>
* dvbsuboverlay: Add support for dynamic resolution update.Raju Babannavar2020-12-211-4/+14
| | | | | | Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1487 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1897>
* audiobuffersplit: Calculate the correct size for fixed size buffersJan Schmidt2020-12-171-2/+3
| | | | | | | | Fix the output-buffer-size property to do what it says by calculating the correct audio buffer size for that target size, rounded down to the nearest whole number of samples. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1887>
* tsparse: Don't use non-object for debugging statementEdward Hervey2020-12-141-1/+1
| | | | | | Use the pad instead Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1880>
* mpegts: Don't add non-padded streams to collection on updatesEdward Hervey2020-12-142-2/+5
| | | | | | | | | | When carrying over existing GstStream to a new GstStreamCollection we need to check whether they *actually* were being used in the previous collection. This avoids adding unknown streams (metadata, PSI, etc...) to the collection on updates. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1880>
* intervideosrc: fix negotiation of interlaced capsLim Siew Hoon2020-12-131-2/+3
| | | | | | | | In 1.0 the field in caps is called "interlace-mode", not "interlaced". Fixes #1480 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1869>
* basetsmux: Don't send the capsheader if src pad has no capsVivia Nikolaidou2020-12-091-3/+7
| | | | | | | That means we're shutting down, so there's no point in the streamheader being sent Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1864>
* rtmp2/connection: pass the parent cancellable down to the connectionMatthew Waters2020-12-083-6/+12
| | | | | | | | | | | | | | | | Otherwise, when rtpm2src cancels an inflight operation that has a queued message stored, then the rtmp connection operation is not stopped. If the cancellation occurs during rtmp connection start up, then rtpm2src does not have any way of accessing the connection object as it has not been returned yet. As a result, rtpm2src will cancel, the connection will still be processing things and the GMainContext/GMainLoop associated with the outstanding operation will be destroyed. All outstanding operations and the rtmpconnection object will therefore be leaked in this case. Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1425 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1862>
* rtpmanagerbad: allow setting caps on rtpsrcMarc Leeman2020-12-042-0/+44
| | | | | | | rtpsrc tries to do a lookup of the caps based on the encoding-name. For not so standard encodings, the caps can be set, avoiding the lookup. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1406>
* tsparse: Forward incoming timestampsEdward Hervey2020-12-023-22/+52
| | | | | | | | | | | | | | Ensure we properly forward the upstream PTS/DTS on the regular and program source pads. All packets being processed will carry over the latest PTS/DTS (as a reconstructed GstBuffer). Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1419 And properly forward PTS/DTS for program pads (which wasn't the case before) Original patch by Vivia Nikolaidou <vivia@ahiru.eu> Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1769>
* transcodebin: Minor error message enhancementThibault Saunier2020-11-301-3/+7
|
* transcodebin: Unlock while setting decodebin capsThibault Saunier2020-11-301-0/+4
| | | | Otherwise it will deadlock recursing up to notify parent object property changes
* transcodebin: Avoid plugin converter if filter handles ANY capsThibault Saunier2020-11-301-5/+31
| | | | | | For example identity or clocksync or this kind of elements can be used with any data flow and we should not enforce decoding to row in that case.
* transcodebin: Add filter as soon as it is setThibault Saunier2020-11-301-1/+3
| | | | | | | | Instead of waiting so that we can simply use a clocksync element as filter, otherwise we won't know the pipeline is live as it won't return NO_PREROLL as one would expect in that case. Adding it right away shouldn't create any issue, both ways are fine.
* uritranscodebin: Add `setup-source` and `element-setup` signalsThibault Saunier2020-11-301-0/+59
| | | | The same way as playbinX does it as it is often quite useful
* transcode: Port to encodebin2Thibault Saunier2020-11-302-64/+182
| | | | This allows supporting muxing sinks like hlssink2 or splitmux
* audio: Use new AudioFormatInfo::fill_silence functionMarijn Suijten2020-11-262-2/+2
| | | | | | | | The function is renamed to be properly associated with AudioFormatInfo (its instance) instead of AudioFormat (an unrelated enum), see [1] for the rename itself. [1]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/940
* mpegtsdemux: Fix off by one errorEdward Hervey2020-11-131-1/+1
| | | | | | | Turns out timestamps of zero are valid :) Fixes issues with streams where the PTS/DTS would be equal to the first PCR. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1807>
* h264parse: try harder to update timecodeMathieu Duponchelle2020-11-131-3/+3
| | | | | | | | NumClockTS is the maximum number of timecodes the pic_timing SEI can carry, but it is perfectly OK for it to carry fewer, and have one of the clock_timestamp_flags set to 0. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1804>
* h264parse: fix installing of update-timecode propertyMathieu Duponchelle2020-11-121-2/+2
| | | | | | | Simply fixes a typo that did not have any adverse effect, and avoid hardcoding initializer Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1805>
* mpegdemux: Set duration on seeking query if possibleSeungha Yang2020-11-111-3/+7
| | | | | | | Set duration on seeking query in the same way as duration query handler. Otherwise application might get confused as if the duration is unknown. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1791>
* mpegtspacketizer: Handle PCR issues with adaptive streamsEdward Hervey2020-11-091-3/+15
| | | | | | | | | | | A lot of content producers out there targetting "adaptive streaming" are riddled with non-compliant PCR streams (essentially all the players out there just use PTS/DTS and don't care about the PCR). In order to gracefully cope with these, we detect them appropriately and any small (< 15s) PCR resets get gracefully ignored. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1785>
* aiffparse: Also set a channel mask for 2 channelsyoungh.lee2020-11-041-36/+31
| | | | | | | And only do add debug output at FIXME level when using the fallback channel mask, not for those defined in the AIFF spec. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1756>
* transcodebin: Create the decodebin in _initThibault Saunier2020-10-291-66/+72
| | | | | | This way user can request pads right from the beginning Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151>
* transcodebin: Accept more than one streamPhilippe Normand2020-10-291-4/+15
| | | | | | | | Look-up the stream matching the given ID also after building the stream list from the received collection. Without this change the transcoder would discard the second incoming stream. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151>
* transcodebin: Port to decodebin3Thibault Saunier2020-10-292-42/+311
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151>
* uritranscodebin: Move to using a urisourcebin for our source.Thibault Saunier2020-10-291-31/+60
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151>
* rtmp2src: Set buffer timestamp on output bufferSeungha Yang2020-10-281-0/+2
| | | | | | | | This timestamp information would be useful for queue2 element when calculating time level and also it makes buffering decision more reliable. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1727>
* jpeg2000parse: sub-sampling parse should take component into accountAaron Boxer2020-10-271-11/+14
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1653>
* jpeg2000parse: no pts interpolation with subframe.Stéphane Cerveau2020-10-271-0/+4
| | | | | | The jpeg2000parser must not interpolate PTS with subframes. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1653>
* jpeg2000parse: support frame and stripe alignment in capsAaron Boxer2020-10-271-1/+54
| | | | | | | | | | forward alignment and num-stripes caps properties Use caps height when setting caps for subframe We want downstream to use full frame height, not subframe height Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1653>