summaryrefslogtreecommitdiff
path: root/gst
Commit message (Collapse)AuthorAgeFilesLines
* interlace: Push the reconfigure event in the right directionJan Alexander Steffens (heftig)2021-07-061-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2361>
* mxfdemux: Check validity of interleaved File PackageEdward Hervey2021-07-053-0/+34
| | | | | | | As specified by the S377 MXF core specification, if a file package has interleaved content, then all tracks must be using the same Edit Rate Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2378>
* h265parse: Add special profile case for profile_idc 0.He Junyan2021-07-021-0/+19
| | | | | | | | | | | This is a work-around to identify some main profile streams having wrong profile_idc. There are some wrongly encoded main profile streams which doesn't have any of the profile_idc values mentioned in Annex-A, instead, general_profile_idc has been set as zero and the general_profile_compatibility_flag[general_profile_idc] is TRUE. Assuming them as MAIN profile for now. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2322>
* h265parse: Map -intra profiles to non-intra compatible profiles.He Junyan2021-07-021-0/+100
| | | | | | | All the -intra profiles can map to non-intra profiles as compatible profiles, except the monochrome case for main and main-10. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2322>
* mxfvanc: Handle empty ANC essenceEdward Hervey2021-07-012-2/+33
| | | | | | | | | | Not having any *actual* ANC is totally fine and common usage with several MXF variants. In order to properly advance the streams, the essence handler returns an empty GAP buffer which gets converted to a GST_EVENT_GAP. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2345>
* avwait: Don't consider it a segment change if the segment is the same except ↵Sebastian Dröge2021-06-231-8/+10
| | | | | | for the position Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2319>
* tsmux: When selecting random PIDs, name the pads according to those PIDsSebastian Dröge2021-06-231-1/+7
| | | | | | | | | | | Some elements will make use of the automatically generated names to create new pads in future muxer instances, for example splitmuxsink. Previously we would've created a pad with a random pid that would become "sink_0", and then on a new muxer instance a pad "sink_0" and tsmux would've then failed because 0 is not a valid PID. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2318>
* tsmux: Recheck existing pad PIDs when requesting a new pad with a random pidSebastian Dröge2021-06-231-1/+23
| | | | | | | | | | Previously pads might have been requested already (e.g. in NULL state), then reset was called (e.g. because changing state) and then a new pad was requested. Resetting is re-creating the internal muxer object and as such resetting the pid counter, so the next requested pad would get the same pid as the first requested pad which then leads to collisions. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2317>
* h264parse,h265parse: Push parameter set NAL units again per segment-doneSeungha Yang2021-06-162-0/+2
| | | | | | | | | | | | Some decoder implementations might drain out internal buffers and reset its status on segment-done event. So, in case that upstream stream-format is packetized but downstream supports only byte-format, required codec-data might not be forwarded toward downstream if such parameter set NAL units don't exist in inband bitstream. Therefore, parse elements should re-send parameter set NAL units like the case of flush event. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2334>
* h265parse: Fix a typo in get_compatible_profile_caps().He Junyan2021-06-161-1/+2
| | | | | | | | The GST_H265_PROFILE_MAIN_444_10 profile should be compatible with GST_H265_PROFILE_SCREEN_EXTENDED_MAIN_444_10, not the current GST_H265_PROFILE_SCREEN_EXTENDED_MAIN_10. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2328>
* alphadecodebin: Fix stall due to QoSNicolas Dufresne2021-06-141-0/+5
| | | | | | | | | alphacombine element is a simple element that assumes buffers are always paired, or at least that missing buffers are signalled with a GAP. The QoS implementation in the GstVideoDecoder base class allow decoders dropping frames independently and that could lead to stall in alphacombine. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2326>
* jpeg2000parse, openjpeg: add support for YCrCb 4:1:1 samplingStéphane Cerveau2021-06-141-2/+7
| | | | | | | Add YCrCb 4:1:1 support in openjpeg elements and fix in jpeg2000parse the YCrCb 4:1:0 support Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2321>
* debugutils: Introduce videocodectestsinkNicolas Dufresne2021-06-075-12/+473
| | | | | | | | | | | | | | This is a video specific sink used to test video CODEC conformance. This is similar to a combination of filesink and testsink, but will skip over any type of padding that GStreamer Video library introduces. This is needed in order to obtain the correct checksum or raw yuv data. This element currently support writing back non-padded raw I420 through the location property and will calculate an MD5 and post it as an element message of type conformance/checksum. More output format or checksum type could be added in the future as needed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2287>
* tsdemux: Clear all streams when rewindingEdward Hervey2021-06-031-4/+21
| | | | | | | This avoids sending out partial invalid data downstream which could cause decoders (ex: `dvdlpmdec`) to error out. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2301>
* codecalpha: alphacombine: add support for NV12/AV12Daniel Almeida2021-05-271-9/+45
| | | | | | | | | | Alpha combine works by appending the GstMemory for the alpha channel to the GstBuffer containing I420, thereby pushing A420 on its src pad. Add support for the same workflow for NV12, thereby producing the recently introduced AV12 format (NV12 + Alpha). Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2277>
* interlace: Don't set field-order field for progressive capsSeungha Yang2021-05-271-0/+4
| | | | | | That would cause negotiation issue Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2282>
* interlace: Drop framerate from query caps of sinkpadSeungha Yang2021-05-271-7/+14
| | | | | | | | | | Query caps should return caps which represent the element can accept, not resulting format. Fixing negotiation error with gst-launch-1.0 videotestsrc ! video/x-raw,framerate=25/1 ! interlace field-pattern=0 ! fakesink Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2282>
* Use gst_buffer_new_memdup()Tim-Philipp Müller2021-05-242-5/+5
| | | | | | | | Update for function rename in core. https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/827 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2281>
* Use new gst_buffer_new_copy()Tim-Philipp Müller2021-05-232-5/+5
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2279>
* mpegtsmux: Fixup program array indices after stream removalJan Alexander Steffens (heftig)2021-05-201-10/+31
| | | | | | | | | | | | Each stream stores the `program_array_index` of its position in its program's `streams` array. When we remove a stream from this array, we need to correct the `program_array_index` of all streams that were backshifted by the removal. Also extract the removal into a new function and add some more safety checks. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2266>
* audiolatency: Drop incoming downstream stick eventsSeungha Yang2021-05-201-0/+22
| | | | | | | stream-start, caps, and segment events will be pushed by internal audiotestsrc element. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2265>
* audiolatency: Use live mode audiotestsrcSeungha Yang2021-05-201-1/+2
| | | | | | | | Expected use case of audiolatency element is that mimic audio capture device which is most likely live source. So audiolatency element should use live mode as well. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2265>
* interlace: Fix too small buffer size errorSeungha Yang2021-05-171-5/+34
| | | | | | | | | Even though input/output resolutions are identical there, default buffer size of progressive and interleaved formats could be different because we are rounding up height of all plane of interlaced frame to be multiple of two. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2244>
* alphacombine: Ignore all events coming from the alpha_padNicolas Dufresne2021-05-141-16/+5
| | | | | | | | | | | | As per usage of this element, everything from this pad is a duplicate. Instead of implemented needless aggregation, simply drop all events from this pad and let the one from the main stream passthrough. Also stop proxying some queries from the alpha pad_too. This fixes racy test failure: - validate.file.playback.scrub_forward_seeking.opus_vp9-alpha_webm Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2247>
* codecalphademux: Do not set a GstFlowReturn from a booleanNicolas Dufresne2021-05-141-2/+2
| | | | | | | | | This was a small overlook, gst_pad_send_event() returns a boolean, so setting it into ret could confuse the flow combiner. Though, it didn't bug, since both 0 and 1 are success (though 1 being undefined). Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2247>
* codecalphademux: Remove eos flow return workaroundNicolas Dufresne2021-05-141-28/+6
| | | | | | | | | It turns out that downstream returning OK after EOS is a bug in multiqueue. As we moved to queue, we no longer have this issue. Let's keep the code clean and just assuming that downstream will keep returning EOS and allow convergence of flow. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2247>
* alphadecodebin: Use normal queues instead of multiqueueNicolas Dufresne2021-05-131-28/+18
| | | | | | | | The multiqueue was too flexible for our need, allowing to queue passed the configured threshold. It also didn't work well when trying to propagate EOS flow return. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2238>
* alphacombine: Implement flow return propagationNicolas Dufresne2021-05-131-18/+25
| | | | | | | The EOS handling was not the problem way. Instead of this, implement proper prorogation of the flow return for the alpha chain function. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2238>
* codecalphademux: Fix handling of flow combineNicolas Dufresne2021-05-131-7/+28
| | | | | | | | | | | | As the alphacombine is simplified to received matching pair of buffers, we can't just stop streaming when we receive EOS from downstream. Due to usage of queue, the moment we get this return value may differ. Though, by continuing pushing, we override the last_flowret on the pad which can make us miss that we effectively can combine all flow into EOS. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2238>
* testbinsrc: Handle setting URI on the flyThibault Saunier2021-05-131-20/+86
| | | | | | Reusing existing streams when possible Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2210>
* vp9parse: Manually fixate codec-alpha fieldNicolas Dufresne2021-05-111-0/+8
| | | | | | | | This is a newly introduced field, and we interpret it as false when missing in the caps. Otherwise, a simple capsfilter will just add the missing field and keep going, despite the upstream caps being a superset. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
* doc: codecalpha: Add plugin documentationNicolas Dufresne2021-05-111-0/+19
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
* alphadecodebin: Add wrappers to decode VP8/VP9 alphaNicolas Dufresne2021-05-118-1/+499
| | | | | | | | This includes base class with wrappers bin that will create a static pipeline capable of handling the VP8/VP9 alpha channel decoding using two instances of vp8/vp9dec element each. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
* codecalpha: Implement alphacombine elementNicolas Dufresne2021-05-114-0/+637
| | | | | | | | | This element will merge video buffers in order to use the alpha stream luma plane as the alpha of the video stream. The implementation is zero-copy and currently only support merging I420 stream with an I420, NV12 or GRAY8 alpha stream. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
* alphacodecdemux: Implement meta demuxingNicolas Dufresne2021-05-111-6/+217
| | | | | | | Produce two streams from a buffer that has GstVideoCodecAlphaMeta attached. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
* Introduce CODEC Alpha pluginNicolas Dufresne2021-05-115-1/+200
| | | | | | | This plugin contains a set of utility elements allowing to extract, decode and combine CODEC (typically VP8/VP9) alpha stream. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
* rtpsrc: Plug leak of rtcp_send_addrJan Alexander Steffens (heftig)2021-05-071-0/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2226>
* rtpsink: Return proper pad from _request_new_padJan Alexander Steffens (heftig)2021-05-071-2/+7
| | | | | | | | Bizarrely, it returned a pad from the child rtpbin. I noticed because our application leaked the implicitly created ghost pad. Make an explicit ghost pad so this works properly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2227>
* rist: Plug leak of rtcp_send_addrJan Alexander Steffens (heftig)2021-05-071-0/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2225>
* h265parse: don't invalidate the last PPS when parsing a new SPSNirbheek Chauhan2021-05-051-1/+1
| | | | | | | | | | | | | This is a port of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2019 to h265parse. 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. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2217>
* Use gst_element_request_pad_simple...François Laignel2021-05-056-10/+12
| | | | | | Instead of the deprecated gst_element_get_request_pad. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2180>
* mxf: check EOS cond with any segment's flagStéphane Cerveau2021-05-041-2/+1
| | | | | | | | | | | The previous test was preventing the pad to be in EOS when the segment position was greater than segment stop. It ended up consuming all the data before getting in EOS. Regarding GST_SEEK_FLAG_SEGMENT it seems to be correctly handled later in the method. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2173>
* mxfdemux: fix keyframe detection in indexStéphane Cerveau2021-05-041-2/+7
| | | | | | | An index entry should be considered as a keyframe if the flags allow a random access only. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2173>
* jpegparse: Don't generate timestamp for 0/1 frameratesOlivier Crête2021-04-231-1/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2194>
* rtpsrc: Fix wrong/NULL URI handlingThibault Saunier2021-04-231-3/+16
| | | | | | | We can reset the URI to NULL and this fix a deadlock in that case or when the URI was invalid. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2132>
* tsdemux: fix truncated output segment when seeking with a stopMathieu Duponchelle2021-04-211-2/+1
| | | | | | | | | In disabling the stop adjustment for negative rates in 03031037fafd2d535bbefb1fdf6024b5d1159043 , two instructions were inverted resulting in the stop always being adjusted by 0 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2182>
* switchbin: When collecting srcpad caps, don't intersect with path caps.Jan Schmidt2021-04-121-5/+14
| | | | | | | | | The path caps describe the input caps that will select each path, don't intersect those with the srcpad caps, which could be completely different. Instead, when querying allowed caps for the srcpad, just construct the union of all possible output caps from all path srcpads. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2018>
* switchbin: Don't report sink pad caps for src pad queries.Jan Schmidt2021-04-121-8/+12
| | | | | | | | | When handling a caps query on the src pad, don't return the union of input caps. Even when not active, a path element can be queried for srcpad template caps, or for dropping paths the allowed downstream caps is anything - as data will be dropped anyway. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2018>
* gst-plugins: allow per feature registrationStéphane Cerveau2021-04-11322-1200/+1584
| | | | | | | | | | | | | Split plugin into features including dynamic types which can be indiviually registered during a static build. More details here: https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2110>
* allow NetStream.Play.PublishNotify MessageHelmut Januschka2021-04-101-0/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2154>