summaryrefslogtreecommitdiff
path: root/gst
Commit message (Collapse)AuthorAgeFilesLines
* 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/1849>
* mpegdemux: Set duration on seeking query if possibleSeungha Yang2020-11-231-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/1831>
* mpegtspacketizer: Handle PCR issues with adaptive streamsEdward Hervey2020-11-201-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/1787>
* mpegtsdemux: Fix off by one errorEdward Hervey2020-11-181-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/1820>
* mpegtsmux: Restore intervals when creating TsMuxJan Alexander Steffens (heftig)2020-10-291-0/+3
| | | | | | | Otherwise the settings from the properties would be overwritten with the defaults. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1733>
* h265parse: Don't enable passthrough by defaultSeungha Yang2020-10-151-0/+6
| | | | | | | SEI messages contain various information which wouldn't be conveyed by using upstream CAPS (HDR, timecode for example). Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1694>
* rtmp2sink: don't expose stop-commands property in backported patchesTim-Philipp Müller2020-10-122-1/+11
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1628>
* rtmp2sink: add docs section with since marker on new stop-commands propertyNazar Mokrynskyi2020-10-122-0/+16
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1628>
* rtmp2: fix code style, update documentation cacheNazar Mokrynskyi2020-10-121-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1628>
* rtmp2: Clean up (improve) GstRtmpStopCommands typeJan Alexander Steffens (heftig)2020-10-124-43/+44
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1628>
* rtmp2sink: handle EOS event and close streamNazar Mokrynskyi2020-10-123-0/+139
| | | | | | https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1285 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1628>
* h265parse: set interlace-mode=interleaved on interlaced contentGuillaume Desmottes2020-10-121-2/+2
| | | | | | | | | | | | | | interlace-mode=alternate is a special case of interlace-mode=interleaved where the fields are split using two different buffers. We should use the latter instead of the former to no break compat with elements supporting only 'interleaved'. Decoders producing alternate, such as OMX on the Zynq, should change the interlace-mode on their output caps. Fix https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/825 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1683>
* rtmp2: Replace stats queue with stats lockJan Alexander Steffens (heftig)2020-10-023-46/+38
| | | | | | | | | | Making the thread receiving the stats wait on the loop to respond was not a good idea, as the latter can get blocked on the streaming thread. Have get_stats read the values directly, adding a lock to ensure we don't read garbage. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1629>
* mpegtsmux: Make handling of sinkpads thread-safeJan Alexander Steffens (heftig)2020-10-012-42/+66
| | | | | | | | | | Ensure we take the object lock while accessing `GstElement.sinkpads`. Use an iterator when the code isn't simple to avoid deadlock. When we find the best pad, take a reference so a concurrent pad release doesn't destroy the pad before we're done with it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1625>
* mpegtsmux: Don't create streams with reserved PIDEdward Hervey2020-09-301-0/+11
| | | | | | | | | | | | | | There are quite a few reserved PID in the various MPEG-TS (and derivate) specifications which we should definitely not use. Those PID have a certain meaning and purpose. Furthermore, a lot of the code in the muxer implementation also makes assumption on the purpose of streams based on their PID. Therefore, when requesting a pad with a specific PID, make sure it is not a restricted PID. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1620>
* gst: Update for gst_video_transfer_function_*() function renamingSebastian Dröge2020-09-072-2/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1557>
* mpegtsmux: Keep mux usable after stopJan Alexander Steffens (heftig)2020-09-011-1/+1
| | | | | | | | | | Otherwise you cannot request new pads until after it is started again. gst_base_ts_mux_reset with FALSE is still called in the dispose implementation, so the muxer still gets deallocated when we actually clean up. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1552>
* rtmp2: Need to unescape the userinfo before settingNirbheek Chauhan2020-08-301-1/+7
| | | | | | | This regressed in 827afa206d8c9675f2a7af402396552c2ed1df09. The same fix was also committed to the webrtc element, but rtmp2 was missed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1547>
* proxysink: event_function needs to handle the event when it is disconnecetd ↵Jose Quaresma2020-08-131-1/+3
| | | | | | | | | | | from proxysrc without this a disconneted proxysink fail when goes to play with error: Internal data stream error. streaming stopped, reason error (-5) Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1508>
* Correct typos in gsth264parse.cFelix Yan2020-08-121-2/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1511>
* h264parse: Add new H.264 levelsNicolas Dufresne2020-08-121-0/+4
| | | | | | The spec now list 6, 6.1 and 6.2. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1509>
* gstautoconvert.c: fix clang warningsJordan Petridis2020-08-041-3/+3
| | | | | | | | | | | | | | | | | | clang 10 is complaining about incompatible types due to the glib typesystem. ``` gst-plugins-bad/gst/autoconvert/b5c3019@@gstautoconvert@sha/gstautoconvert.c.o' -c ../subprojects/gst-plugins-bad/gst/autoconvert/gstautoconvert.c ../subprojects/gst-plugins-bad/gst/autoconvert/gstautoconvert.c:898:8: error: incompatible pointer types passing 'typeof ((((void *)0))) *' (aka 'void **') to parameter of type 'GList **' (aka 'struct _GList **') [-Werror,-Wincompatible-pointer-types] if (!g_atomic_pointer_compare_and_exchange (&autoconvert->factories, NULL, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/glib-2.0/glib/gatomic.h:192:44: note: expanded from macro 'g_atomic_pointer_compare_and_exchange' __atomic_compare_exchange_n ((atomic), &gapcae_oldval, (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \ ^~~~~~~~~~~~~~ 1 error generated. ``` Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1487>
* webrtc, rtmp2: Warn if the user or password aren't escapedNirbheek Chauhan2020-08-031-0/+5
| | | | | | | | If the user/pass aren't escaped, the userinfo will be ambiguous and we won't know where to split. We will accidentally get it right if the : belongs in the password. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1481>
* webrtc, rtmp2: Fix parsing of userinfo in URI stringsNirbheek Chauhan2020-08-031-1/+1
| | | | | | | | | | | | | | While parsing the string, `gst_uri_from_string()` also unescapes the userinfo. This is bad if your username contains a `:` character, since we will then split the userinfo at the wrong location when parsing it. To fix this, we can use the new `gst_uri_from_string_escaped()` API that was added in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/583 Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/831 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1481>
* ristsrc: drop stream-start & eos messages posted from the internal udp sink(s)George Kiagiadakis2020-07-291-0/+19
| | | | | | See #1368 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1472>
* rtpsrc: drop stream-start & eos messages posted from the internal udp sink(s)George Kiagiadakis2020-07-291-0/+18
| | | | | | See #1368 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1472>
* tsmux: Fix PCR calculation for CBR live streamsVivia Nikolaidou2020-07-282-1/+10
| | | | | | Take the first ever timestamp as an offset Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1431>
* tsmux: Refactor get_current_pcrJan Alexander Steffens (heftig)2020-07-281-9/+16
| | | | | | No functional change. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1431>
* rtpsrc: Add domain name supportNicolas Dufresne2020-07-141-5/+33
| | | | | | | | | This add domain name resolution (similar to udpsrc does) to the rtpsrc element. Fixes 1352 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1433>
* ristsrc: Add support for domain nameNicolas Dufresne2020-07-141-0/+26
| | | | | | | | | This add domain name resolution (similar to udpsrc does) to the ristsrc element. Fixes 1352 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1433>
* rtpsrc: Always set rtcp socket addressNicolas Dufresne2020-07-141-9/+1
| | | | | | | | | | | | Regardless if it's multicast or not, set the address property to match the element address. This is the address of the interface to listen to, which is expected to be ANY in most cases, but should be honnored even for RTCP non-multicast case. This also fixes an assertion if the address is not a parsable IPv4 or IPv6 string. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1433>
* rtpsink: Fix error handling on bad DNSNicolas Dufresne2020-07-141-3/+1
| | | | | | | This will properly print the DNS being attempted to resolved and avoid trying to unref a NULL pointer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1433>
* ristsink: Fix error handling on bad DNSNicolas Dufresne2020-07-141-3/+1
| | | | | | | This will properly print the DNS being attempted to resolved and avoid trying to unref a NULL pointer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1433>
* basetsmux: make use of gst_aggregator_finish_buffer_listMathieu Duponchelle2020-07-101-25/+3
| | | | | | Fixes #1276 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1429>
* docs: fix element names in section headersTim-Philipp Müller2020-07-1021-21/+21
| | | | | | Hopefully that'll make hotdoc pick up the docs for these elements. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1428>
* mpegtsmux: Don't assume English for ISO-639 language descriptorAndreas Frisch2020-07-081-1/+1
| | | | | | | | | Previously, "en" (should have actually been "eng") was assumed for the ISO-639 language descriptor if no language was explicitely given. Neither ETSI EN 300 468 nor ATSC A/52 mandate for a language descriptor, so we should simply not set it, if it's unknown. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1386>
* mpegtsmux: Fix handling of MPEG-2 AACJan Schmidt2020-07-084-34/+175
| | | | | | | | | The audio/mpeg,mpegversion=2 caps in GStreamer refer to MPEG-2 AAC (ISO 13818-7), not to the extended MP3 (ISO 13818-3), which is audio/mpeg,mpegversion=1,mpegaudioversion=2/3 Fix the caps, and add handling for MPEG-2 AAC in both ADTS and raw form, adding ADTS headers for the latter.
* rtmp, transcodebin: fix i18n header includesTim-Philipp Müller2020-07-072-3/+3
| | | | | | Fixes #1351 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1416>
* rist: Use g_signal_connect_object()Nicolas Dufresne2020-07-072-21/+22
| | | | | | | | | | | | rtpbin can still emit signals when it is being disposed, and while rtpbin is inside ristsrc/ristsink it can still live longer. So we either have disconnect all signals at some point, or let GObject take care of that automatically. Related to !1412 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1413>
* scenechange: use orc to compute scoreJosep Torra2020-07-075-13/+392
| | | | | | Add an orc implementation for SAD operation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1024>
* rtpsrc/sink: Use g_signal_connect_object()Sebastian Dröge2020-07-072-16/+16
| | | | | | | | | | rtpbin can still emit signals when it is being disposed, and while rtpbin is inside rtpsrc/rtpsink it can still live longer. So we either have disconnect all signals at some point, or let GObject take care of that automatically. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1412>
* mpegtsmux: Avoid crash releasing pad with NULL progJan Alexander Steffens (heftig)2020-07-071-6/+8
| | | | | | | | If we release a pad while the muxer is running which has never been used for aggregation (thus it does not have an assigned program), `prog` is NULL. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1411>
* meson: add update-orc-dist targetTim-Philipp Müller2020-07-043-0/+3
| | | | | | Add target to update backup orc -dist.[ch] files. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1408>
* videoparseutils: Only add a single closed caption metaVivia Nikolaidou2020-07-031-3/+8
| | | | | | | Otherwise, having a stream go through a parser multiple times would result in duplicate closed caption meta. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1396>
* videoparsers: Fix parsing ATSC bar dataJan Alexander Steffens (heftig)2020-07-011-3/+4
| | | | | | It rejected the case of all bars being disabled. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1394>
* videoparsers: Fix parsing of ATSC AFD dataJan Alexander Steffens (heftig)2020-07-011-1/+0
| | | | | | | | The test for 0x40 being set is repeated by gst_video_parse_utils_parse_afd, which also extracts the low nibble again, so we must not clear it here. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1394>
* videoparsers: Give gstvideoparseutils.c a debug categoryJan Alexander Steffens (heftig)2020-07-012-0/+8
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1394>
* rtmp2: Set connect args like libavformat doesJan Alexander Steffens (heftig)2020-07-013-2/+108
| | | | | | | To improve our compatibility. Critically, a server might elide data for codecs we don't advertise. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1384>
* rtmp2: Add support for AGGREGATE messagesJan Alexander Steffens (heftig)2020-07-011-0/+83
| | | | | | They're multiple frames (tags) of FLV data wrapped into a message. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1384>
* rtmp2: Move FLV tag header parsing into rtmputils.cJan Alexander Steffens (heftig)2020-07-013-15/+61
| | | | | | To be shared with the AGGREGATE handling. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1384>