Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save martijnberger/7813fe146e6a27108964d8a20e157279 to your computer and use it in GitHub Desktop.
Save martijnberger/7813fe146e6a27108964d8a20e157279 to your computer and use it in GitHub Desktop.
commit 10c6262179ee66ff03ed7dbebf46068b89db93b0
Author: Sebastian Dröge <[email protected]>
Date: Sun Nov 1 10:30:27 2020 +0200
flvmux: Release pads via GstAggregator
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/797
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/803>
commit 428c9b60532917c0ac49c9d48b15bdcd00a1370b
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Thu Sep 10 11:11:00 2020 +0200
flvmux: Improve logging of gst_flv_mux_buffer_to_tag_internal
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/759>
commit 189e85ed62e37cc40ca945ceb0fe8881a02455a3
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Wed Sep 9 15:12:53 2020 +0200
flvmux: Move stream skipping to GstAggregatorPadClass.skip_buffer
Besides looking like the correct place to put this, it allows us to drop
the entire aggregator queue. The old implementation only dropped at most
one buffer for each call of aggregate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/759>
commit 2d08d16002205040bbaaf589f2294b886ee0e6d2
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Mon Aug 31 15:01:32 2020 +0200
flvmux: Avoid crash when best pad gets flushed
The 'best' pad might receive a flush event between us picking it and us
popping the buffer. In this case, the buffer will be missing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/711>
commit 01594d19b8dfac38226910d1b10231c26133c7f9
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Mon Aug 31 13:43:42 2020 +0200
flvmux: Correct breaks in gst_flv_mux_find_best_pad
The code seems to use `continue` and `break` as if both refer to the
surrounding `while` loop. But because `break` breaks out of the
`switch`, they actually have the same effect.
This may have caused the loop not to terminate when it should. E.g. when
`skip_backwards_streams` drops a buffer we should abort the aggregation
and wait for all pads to be filled again. Instead, we might have just
selected a subsequent pad as our new "best".
Replace `break` with `done = TRUE; break`, and `continue` with `break`.
Then simplify the code a bit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/710>
commit c95cc6a015e1880dd3d74abcffc1b2c346e8f423
Author: Vivia Nikolaidou <[email protected]>
Date: Mon Aug 10 20:20:53 2020 +0300
flvmux: Return NEED_DATA when we drop a buffer
When we are dropping a buffer in find_best_pad (e.g. waiting for a
keyframe, or skipping backwards timestamp), return
GST_AGGREGATOR_FLOW_NEED_DATA to make sure we have enough data at the
next run. Otherwise, a stream that accidentally fell behind (e.g.
relinking race, or just waiting for a keyframe) will never get the
opportunity to catch up to the other one, because the other one will
always keep advancing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>
commit 75f6ca8a11684757a4751edeae1964b24c9cbb6b
Author: Vivia Nikolaidou <[email protected]>
Date: Mon Aug 10 20:20:04 2020 +0300
flvmux: Return NEED_DATA when no best pad is found
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>
commit 59aab55e715015b048cc766decd843023cb84dda
Author: Vivia Nikolaidou <[email protected]>
Date: Mon Aug 10 20:17:38 2020 +0300
flvmux: Fix possible crash on GST_ITERATOR_RESYNC
Wrong pointer type
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>
commit 556e7ab210777ccca9b77f9fd1863ac34c8a1ade
Author: Sebastian Dröge <[email protected]>
Date: Fri Jun 12 09:52:56 2020 +0300
flvdemux: Change a GST_ERROR_OBJECT() back to GST_DEBUG_OBJECT()
It was accidentally changed in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/436
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/624>
commit f63299ff2f774e858c384cd3998b203541a9631a
Author: Mathieu Duponchelle <[email protected]>
Date: Sat Jun 6 00:42:25 2020 +0200
plugins: uddate gst_type_mark_as_plugin_api() calls
commit 37c619f9954045602a61daf4bceff4cd0e4f70cf
Author: Mathieu Duponchelle <[email protected]>
Date: Sat May 30 01:29:03 2020 +0200
plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
commit 2c278bb2ab498216ef444a9b22ea85631ad43f0f
Author: Sebastian Dröge <[email protected]>
Date: Wed May 20 13:17:13 2020 +0300
flvdemux: Send gap events if one of the streams falls behind the other by more than 3s
Same mechanism and threshold as in other demuxers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/597>
commit 0bb9880b36053411dd37dc3cc822331eb01ee675
Author: Sebastian Dröge <[email protected]>
Date: Wed May 20 12:53:56 2020 +0300
flvdemux: Remove unused audio_linked/video_linked booleans
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/597>
commit 5dd3643d9474acc3095c43afda8ad70a567f286b
Author: Edward Hervey <[email protected]>
Date: Wed May 20 10:46:45 2020 +0200
flvdemux: Answer bitrate queries from upstream
If upstream (such as queue2 in urisourcebin) asks for our bitrate, check if we
have stored audio/video bitrates, and use them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/596>
commit e8282661b624190688017b739ae595eaf806e328
Author: Edward Hervey <[email protected]>
Date: Wed May 20 10:45:16 2020 +0200
flvdemux: Handle empty metadata strings
g_utf8_validate() errors out on empty string. But empty strings are valid,
so only check if they're not
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/596>
commit 9f5f90651597e6fa6d04db415374f1b0d278ae5e
Author: Edward Hervey <[email protected]>
Date: Wed May 20 10:44:19 2020 +0200
flvdemux: Set ACCEPT_TEMPLATE flag on sinkpad
A demuxer can accept any caps matching its sinkpad template caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/596>
commit 6a389615610c72eef3766a650f087478e4d991e0
Author: Vivia Nikolaidou <[email protected]>
Date: Tue Mar 31 14:32:19 2020 +0300
flvmux: Add skip-backwards-streams property
Backwards timestamps confuse librtmp, even if they're only backwards
relative to the other stream. If the timestamp of a stream is going
backwards related to the other stream, this property allows the muxer to
skip a few buffers until it reaches the timestamp of the other stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/572>
commit b0855113c628abe0581fb5f410f9db20a65bca40
Author: Vivia Nikolaidou <[email protected]>
Date: Tue Mar 31 14:10:35 2020 +0300
flvmux: Allow requesting streamable pads after header is written
Allows us to request pads after writing header for streamable flv's.
For non-streamable it doesn't make sense to request a new pad after
writing the header, because the headers have been written already and we
can't add the new stream. But for streamable, any clients that connect
after the new pad has been added will be able to see both streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/572>
commit 9189cdcb1d703084e530f2439aa9b277040b4991
Author: Vivia Nikolaidou <[email protected]>
Date: Wed Apr 8 19:49:00 2020 +0300
flvdemux: Don't write an empty string as a tag
To stop warnings like:
GStreamer-WARNING **: 19:47:48.186: Trying to set empty string on
taglist field 'encoder'. Please file a bug.
commit a3933ea53d2a11ed40c288122a2eb065d5ce7069
Author: Jan Schmidt <[email protected]>
Date: Fri Apr 3 00:16:10 2020 +1100
flvmux: Fix invalid padlist accesses.
Request pads can released at any time, so make sure to hold
the object lock when iterating the element sinkpads list where
that's safe, or to use other safe pad iteration patterns in
other places.
When choosing a best pad, return a reference to the pad to make sure it
stays alive for output in the aggregator srcpad task.
Should fix a spurious valgrind error in the CI flvmux tests and some
other potential problems if the request sink pads are released while
the element is running..
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/714
commit e836640bd555a025160d52d689a9391c3697bb7d
Author: Yeongjin Jeong <[email protected]>
Date: Tue Feb 18 14:58:00 2020 +0900
flvmux: Support rollover in timestamp
For live streams, if we keep the stream for a long time, the timestamp
will be larger than max_uint32. In that case, timestamp should be handled
as a rollover timestamp rather than a backward timestamp.
commit 7cbc351e053f727ba17cbf4a7b7d19a428ca38c3
Author: Vivia Nikolaidou <[email protected]>
Date: Mon Dec 16 18:43:44 2019 +0200
flvdemux: Don't replace video codec data when we receive a PAR
Receiving a pixel-aspect-ratio should trigger a caps change, but not
replace the existing video codec tag
commit 9e0eb7781076441c9704d2383708e49399e7da9d
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Thu Dec 12 10:59:35 2019 +0100
flvmux: Use the last DTS for the metadata timestamp
This avoids creating a timestamp regression during a stream.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/429
commit 5009cad2200c04a6f8845ad0e661ad6a91bc7d83
Author: Seungha Yang <[email protected]>
Date: Tue Dec 10 23:48:35 2019 +0900
flvmux: Use thread-safe gmtime_r if available
gmtime on *nix is not thread-safe.
commit 06600b2cd957b92c176f2d14ea9722f4c40505ac
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Tue Dec 3 13:47:22 2019 +0100
flvmux: Correct metadata handling in file and stream mode
In file mode, only push one onMetaData at the start of the stream.
In stream mode, always push complete onMetaData. They get replaced, not
merged.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/418
commit 6fdb6ece6e97b9f47fb737ec68943bfed2f3df90
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Tue Dec 3 13:46:09 2019 +0100
flvmux: Don't calculate duration in streamable mode
There's no header to rewrite, so the duration is left unused.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/418
commit 8e1c224fbc217d43f5b34cf63b3883c871dcecf2
Author: Edward Hervey <[email protected]>
Date: Fri Oct 11 14:20:15 2019 +0200
good: Avoid usage of deprecated API
GTimeval and related functions are now deprecated in glib.
Replacement APIs have been present since 2.26
commit c9a47c0c8db30a19d1402d76e93c688d11d73cdb
Author: Tim-Philipp Müller <[email protected]>
Date: Sun Jun 9 00:43:00 2019 +0100
Remove autotools build system
commit 46989dca9665f5a1b28a83f68415c91fee7bc051
Author: Aaron Boxer <[email protected]>
Date: Mon Sep 2 08:27:35 2019 -0400
documentation: fix a number of typos
commit 152b0026587c8fe84f4ad07eb4960b5409595a6a
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Mon Jun 24 17:35:15 2019 +0200
flvmux: Clear new_tags if sending metadata in header
This avoids sending an additional metadata object right after the
headers.
commit 9528bfd78f496be11c69f55258e820d391178829
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Wed Jun 19 12:31:46 2019 +0200
flvmux: Simplify an if-else chain
Merge the identical branches and turn the condition around to make it
easier to read.
commit 9a70ce87dba5be92b5bb5ca53ce5584df0332b0e
Author: Jan Alexander Steffens (heftig) <[email protected]>
Date: Wed Jun 19 12:28:22 2019 +0200
flvmux: Avoid crash when changing caps without both streams
mux->video_pad and mux->audio_pad can be NULL if the corresponding pad
has not been requested.
commit af0198853415cd64f5f6b8bba3e0affd68431752
Author: Thibault Saunier <[email protected]>
Date: Mon Oct 22 11:39:55 2018 +0200
doc: Port documentation to hotdoc
commit 0a6a62aa7652f0b5a689d4cecbc031b763c2000a
Author: Thibault Saunier <[email protected]>
Date: Mon Oct 22 11:39:24 2018 +0200
docs: Port all docstring to gtk-doc markdown
commit 3160713abf3b216870054cc4e09791f09f9b3140
Author: Andreas Frisch <[email protected]>
Date: Fri Mar 15 10:41:20 2019 +0100
flvmux: Fix scale of time values in warning message
commit 6db7bb1539cca081d810bd7eb30d1cc244655297
Author: Ilya Smelykh <[email protected]>
Date: Fri Feb 8 16:10:25 2019 +0000
flvmux: Use 8kHz sample rate for alaw/mulaw audio
commit b9c4c8bca5709dde83db6b1fe421e2d938d469c1
Author: Ilya Smelykh <[email protected]>
Date: Thu Feb 7 09:54:31 2019 +0000
flvdemux: set sample rate to 8KHz for G.711 audio
commit bc8af2cca5bc1465c4837ef6ebfc394ad7f9b9a2
Author: Thibault Saunier <[email protected]>
Date: Sat Jan 26 10:35:31 2019 -0300
flvdemux: Do not error out if the first added and chained pad is not linked
And let it the oportunity to get its other pad linked
Example:
```
$ gst-launch-1.0 uridecodebin uri=file:///home/thiblahute/gst-validate.save/gst-integration-testsuites/testsuites/../medias/defaults/flv/819290236.flv caps=audio/x-raw expose-all-streams=FALSE ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstFlvDemux:flvdemux0: Internal data stream error.
Additional debug info:
../subprojects/gst-plugins-good/gst/flv/gstflvdemux.c(2760): gst_flv_demux_loop (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstFlvDemux:flvdemux0:
streaming stopped, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
```
commit ab8100e664fd8eb2f9afd488fcac76ca7022b7f7
Author: Sebastian Dröge <[email protected]>
Date: Wed Jan 9 17:52:28 2019 +0200
flvdemux: Handle the encoder metadata the same as metadatacreator
And store it in our ENCODER tag.
commit c28a9d5d9ce28c089107bd0209709616c5d741d3
Author: Sebastian Dröge <[email protected]>
Date: Wed Jan 9 17:48:36 2019 +0200
flvmux: Add encoder metadata to the header
And also add a property for setting this. By default it has the same
value as the metadatacreator metadata.
Various software is using encoder instead of metadatacreator, others are
using them both for different purposes. As such it's useful to have
support for setting both here.
commit ec655de2887e4ce213277e6c3db51cc8c156a652
Author: Maciej Wolny <[email protected]>
Date: Mon Nov 19 18:20:52 2018 +0000
Remove duplicate declarations
This causes 'redefinition of typedef ...' errors on GCC 4.5.3
commit fea0d0b1a4757ab199f2b57b4ff3ffefac1034e4
Author: Olivier Crête <[email protected]>
Date: Sat Oct 27 19:27:12 2018 +0100
flvmux: Force timestamps to always be increasing
https://bugzilla.gnome.org/show_bug.cgi?id=796382
commit bd6a4aa10d233e52370ee6ee80c32ef2659c48ea
Author: Yeongjin Jeong <[email protected]>
Date: Thu Oct 11 16:36:17 2018 +0900
flvdemux: Use aac codec-data to adjust channels if needed
Flv does not support various channels in AAC stream format, for example
flvdemux detect an audio channels of 2(stereo) when the AAC really is 1(mono).
https://bugzilla.gnome.org/show_bug.cgi?id=797275
commit 8cae95a22d5d1ea7b817263af7b9e657900c964c
Author: Yeongjin Jeong <[email protected]>
Date: Fri Oct 5 17:16:26 2018 +0900
flvmux: Don't refuse caps changes after starting to write headers in streamable mode.
Flv does support changing the stream type and stream properties
after the headers were started to be written, and for example H264
codec_data changes can be supported.
https://bugzilla.gnome.org/show_bug.cgi?id=797256
commit 916ad090091902fec99aa2e20dfae1427e8bc630
Author: Seungha Yang <[email protected]>
Date: Thu Sep 20 12:12:55 2018 +0900
flvmux: Don't leak codec_data buffer
Use gst_buffer_replace() to prevent buffer leak
https://bugzilla.gnome.org/show_bug.cgi?id=797179
commit 1cd5a5241f3f0450f03fc54c5fe2e43b75ae4e7d
Author: Seungha Yang <[email protected]>
Date: Thu Sep 6 13:13:19 2018 +0900
flvmux: Don't omit streamheader from caps on downstream reconfigure
The reconfigured downstream elements (e.g., dynamically added sink element)
most likely require the flv streamheader
https://bugzilla.gnome.org/show_bug.cgi?id=797089
commit 87b2b35fac1622a8a587beeefca9d027530802c1
Author: Olivier Crête <[email protected]>
Date: Mon Apr 23 13:29:30 2018 -0400
flvmux: Remove custom get_next_time implementation
GstAggregator now does the same thing in the simple implementation.
https://bugzilla.gnome.org/show_bug.cgi?id=795486
commit c2c7d110e5d68bc86babfffbcb02632d98155e2e
Author: Olivier Crête <[email protected]>
Date: Mon Apr 23 11:26:12 2018 -0400
flvmux: Don't wake up the muxer unless there is data
https://bugzilla.gnome.org/show_bug.cgi?id=795332
commit 11297c333712e5f613493e37b31c4b0643698f7d
Author: Olivier Crête <[email protected]>
Date: Mon Apr 23 11:19:18 2018 -0400
flvmux: Save the current position in the output segment
https://bugzilla.gnome.org/show_bug.cgi?id=795332
commit 168fae813b9e22e18873eef26e7ea2ae7f5de170
Author: Olivier Crête <[email protected]>
Date: Thu Apr 19 17:53:51 2018 -0400
flvmux: Wait for caps from both srcs before writing header
Wait for caps on all pads to start writing data even when source is live.
Includes unit test by Havard Graff that simulates it.
https://bugzilla.gnome.org/show_bug.cgi?id=794722
commit edd9c8f6b874f19fb74436c599effc03a655b969
Author: Xavier Claessens <[email protected]>
Date: Tue Apr 24 14:06:10 2018 -0400
Meson: Generate pc file for all plugins in good
https://bugzilla.gnome.org/show_bug.cgi?id=794568
commit fc9db36a1f124e4ceb1d6ee35245d9794f595f29
Author: Mathieu Duponchelle <[email protected]>
Date: Fri Apr 13 23:01:20 2018 +0200
flvmux: unref return of aggregator_pad_peek_buffer
We ended up leaking every single buffer going through the
muxer, which is far from ideal
commit acb6090e47ac36495c92ba30a9656e566ca1bc95
Author: Mathieu Duponchelle <[email protected]>
Date: Fri Apr 13 22:44:14 2018 +0200
flvmux: aggregate should not push EOS itself
Instead it is expected to return GST_FLOW_EOS, and let the
base class handle that.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment