Vivia Nikolaidou
9189cdcb1d
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.
2020-04-08 20:22:51 +03:00
Jan Schmidt
a3933ea53d
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
2020-04-05 11:50:43 +00:00
Yeongjin Jeong
e836640bd5
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.
2020-02-18 18:39:31 +09:00
Vivia Nikolaidou
7cbc351e05
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
2019-12-16 21:51:38 +00:00
Jan Alexander Steffens (heftig)
9e0eb77810
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
2019-12-12 11:09:31 +01:00
Seungha Yang
5009cad220
flvmux: Use thread-safe gmtime_r if available
...
gmtime on *nix is not thread-safe.
2019-12-10 23:48:35 +09:00
Jan Alexander Steffens (heftig)
06600b2cd9
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
2019-12-03 14:01:19 +01:00
Jan Alexander Steffens (heftig)
6fdb6ece6e
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
2019-12-03 14:01:14 +01:00
Edward Hervey
8e1c224fbc
good: Avoid usage of deprecated API
...
GTimeval and related functions are now deprecated in glib.
Replacement APIs have been present since 2.26
2019-10-16 07:46:58 +00:00
Tim-Philipp Müller
c9a47c0c8d
Remove autotools build system
2019-10-14 11:04:18 +01:00
Aaron Boxer
46989dca96
documentation: fix a number of typos
2019-10-05 22:38:11 +00:00
Jan Alexander Steffens (heftig)
152b002658
flvmux: Clear new_tags if sending metadata in header
...
This avoids sending an additional metadata object right after the
headers.
2019-06-24 17:37:51 +02:00
Jan Alexander Steffens (heftig)
9528bfd78f
flvmux: Simplify an if-else chain
...
Merge the identical branches and turn the condition around to make it
easier to read.
2019-06-19 14:36:21 +02:00
Jan Alexander Steffens (heftig)
9a70ce87db
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.
2019-06-19 14:36:21 +02:00
Thibault Saunier
af01988534
doc: Port documentation to hotdoc
2019-05-13 11:34:56 -04:00
Thibault Saunier
0a6a62aa76
docs: Port all docstring to gtk-doc markdown
2019-05-13 10:24:40 -04:00
Andreas Frisch
3160713abf
flvmux: Fix scale of time values in warning message
2019-03-15 09:55:32 +00:00
Ilya Smelykh
6db7bb1539
flvmux: Use 8kHz sample rate for alaw/mulaw audio
2019-02-08 20:33:55 +00:00
Ilya Smelykh
b9c4c8bca5
flvdemux: set sample rate to 8KHz for G.711 audio
2019-02-08 20:33:55 +00:00
Thibault Saunier
bc8af2cca5
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 ...
```
2019-02-02 18:36:09 +00:00
Sebastian Dröge
ab8100e664
flvdemux: Handle the encoder metadata the same as metadatacreator
...
And store it in our ENCODER tag.
2019-01-13 13:22:41 +00:00
Sebastian Dröge
c28a9d5d9c
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.
2019-01-13 13:22:41 +00:00
Maciej Wolny
ec655de288
Remove duplicate declarations
...
This causes 'redefinition of typedef ...' errors on GCC 4.5.3
2018-12-04 11:13:02 +00:00
Olivier Crête
fea0d0b1a4
flvmux: Force timestamps to always be increasing
...
https://bugzilla.gnome.org/show_bug.cgi?id=796382
2018-11-05 18:17:01 -05:00
Yeongjin Jeong
bd6a4aa10d
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
2018-10-12 14:35:37 -04:00
Yeongjin Jeong
8cae95a22d
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
2018-10-11 15:35:24 -04:00
Seungha Yang
916ad09009
flvmux: Don't leak codec_data buffer
...
Use gst_buffer_replace() to prevent buffer leak
https://bugzilla.gnome.org/show_bug.cgi?id=797179
2018-09-20 11:35:31 +03:00
Seungha Yang
1cd5a5241f
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
2018-09-06 15:52:09 -04:00
Olivier Crête
87b2b35fac
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
2018-05-16 22:23:36 +02:00
Olivier Crête
c2c7d110e5
flvmux: Don't wake up the muxer unless there is data
...
https://bugzilla.gnome.org/show_bug.cgi?id=795332
2018-04-26 15:41:54 -04:00
Olivier Crête
11297c3337
flvmux: Save the current position in the output segment
...
https://bugzilla.gnome.org/show_bug.cgi?id=795332
2018-04-26 15:41:54 -04:00
Olivier Crête
168fae813b
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
2018-04-26 15:41:54 -04:00
Xavier Claessens
edd9c8f6b8
Meson: Generate pc file for all plugins in good
...
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:07:06 +01:00
Mathieu Duponchelle
fc9db36a1f
flvmux: unref return of aggregator_pad_peek_buffer
...
We ended up leaking every single buffer going through the
muxer, which is far from ideal
2018-04-13 23:01:20 +02:00
Mathieu Duponchelle
acb6090e47
flvmux: aggregate should not push EOS itself
...
Instead it is expected to return GST_FLOW_EOS, and let the
base class handle that.
2018-04-13 22:44:14 +02:00
Olivier Crête
96261ce220
flvmux: Duration & unit tests
...
The muxed buffers will not carry the duration of the
incoming buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=793457
2018-03-01 18:25:02 -05:00
Olivier Crête
c0bf793c05
flvmux: Set PTS based on running time
...
https://bugzilla.gnome.org/show_bug.cgi?id=793457
2018-03-01 17:15:02 -05:00
Mathieu Duponchelle
273d2c23d9
Port to latest GstAggregator segment API
...
The aggregator segment is now exposed on the src pad
https://bugzilla.gnome.org/show_bug.cgi?id=793945
2018-03-01 15:35:24 +01:00
Tim-Philipp Müller
072c070e6c
docs: remove pointless Since: 0.10.x markers
2018-02-15 00:58:38 +00:00
Tim-Philipp Müller
f459438278
Update for renamed aggregator pad API
...
https://bugzilla.gnome.org/show_bug.cgi?id=791204
2018-01-23 09:46:32 +00:00
Vincent Penquerc'h
8b814f6351
flv: flvmux ported to the GstAggregator
...
This makes it possible to create a flv file from a live source and not stop
when there are packet drops.
https://bugzilla.gnome.org/show_bug.cgi?id=782920
2017-12-20 15:34:11 -05:00
Nicolas Dufresne
986f3e15b2
flvdemux: Only set pixel-aspect-ratio if specified
...
If it's not specified, we should let the decoder figure it out.
Apparently the code was already in place, all was to make the code
conditional.
https://bugzilla.gnome.org/show_bug.cgi?id=787795
2017-10-05 21:20:19 -04:00
Nicolas Dufresne
307018da89
flvdemux: Don't pull passed the EOS
...
When a truncated FLV is provided and processed in pull mode, we
may endup trying to pull passed EOS, causing a rather confusing
warning as the pull offset is an integer overflow.
https://bugzilla.gnome.org/show_bug.cgi?id=787795
2017-10-05 21:20:19 -04:00
Nicolas Dufresne
cfc1638ca5
flvdemux: Ignore invalid H.264 codec data
...
This code basically skip over codec_data with empty payload. In
this case, the codec_data variable is the size of the header for
the CODEC part of Video Tag. The remaining is supposed to be the
H.264 codec data, hence should not be empty.
https://bugzilla.gnome.org/show_bug.cgi?id=787795
2017-10-05 21:20:19 -04:00
Nicolas Dufresne
18dbd49fb8
flvdemux: Avoid integer overflow on invalid CTS
...
If the CTS is negative an would lead to a negtive PTS, clip
the CTS so the PTS will be 0.
https://bugzilla.gnome.org/show_bug.cgi?id=787795
2017-10-05 21:20:19 -04:00
Nicolas Dufresne
b68d936ae0
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:41:19 -04:00
ChangBok Chae
3d19d6d8bc
flvdemux: remove duplicated segment initialization
...
It's also done in gst_flv_demux_cleanup().
https://bugzilla.gnome.org/show_bug.cgi?id=779106
2017-04-20 12:42:58 +01:00
Sean DuBois
2f707370d4
flvmux: Add metadatacreator property
...
Allow users to set metadatacreator value in the meta packet
https://bugzilla.gnome.org/show_bug.cgi?id=774131
2016-11-10 13:11:05 +02:00
Nicolas Dufresne
ad9e9bedfb
flvmux: Assume PTS is DTS when PTS is missing
...
This fixes issue for encoders that only sets the DTS. We assume that
there was no re-ordering when that happens.
https://bugzilla.gnome.org/show_bug.cgi?id=762207
2016-10-24 11:54:30 -04:00
Thibault Saunier
150edef830
Use the new API to post flow ERROR messages on the bus
...
https://bugzilla.gnome.org/show_bug.cgi?id=770158
2016-08-26 19:23:26 -03:00