Stéphane Cerveau
6fdbe19b3f
flv: allow per feature registration
...
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-good/-/merge_requests/876 >
2021-03-29 12:45:22 +02:00
Sebastian Dröge
556e7ab210
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 >
2020-06-12 09:52:56 +03:00
Sebastian Dröge
2c278bb2ab
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 >
2020-05-20 18:46:41 +00:00
Edward Hervey
5dd3643d94
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 >
2020-05-20 16:51:47 +03:00
Edward Hervey
e8282661b6
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 >
2020-05-20 10:48:06 +02:00
Edward Hervey
9f5f906515
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 >
2020-05-20 10:48:06 +02:00
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
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
Aaron Boxer
46989dca96
documentation: fix a number of typos
2019-10-05 22:38:11 +00:00
Thibault Saunier
0a6a62aa76
docs: Port all docstring to gtk-doc markdown
2019-05-13 10:24:40 -04: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
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
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
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
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
Jan Alexander Steffens (heftig)
b3cfbe575c
flvdemux: Push nominal bitrate tags
...
Add per-stream tag lists, which are used to send nominal
bitrate tags. When remuxing FLV => FLV, this now passes
through the upstream bitrate.
https://bugzilla.gnome.org/show_bug.cgi?id=768440
2016-07-07 10:21:21 +03:00
Jan Alexander Steffens (heftig)
ee44e60f7b
flvdemux: Refactor metadata tag handling
...
The FLV header cannot be trusted to indicate video or
audio presence, as the comments already mention. Don't
delay pushing tags waiting for streams that might never
appear.
Tags are now pushed immediately after they change:
- After parsing an onMetaData script object
- After negotiating caps on a pad
https://bugzilla.gnome.org/show_bug.cgi?id=768440
2016-07-07 10:21:21 +03:00
Sebastian Dröge
d6f597db20
flvdemux: Add comment about H263/MPEG4P2 being non-standard for FLV
...
They are however supported by ffmpeg and apparently used out there.
https://bugzilla.gnome.org/show_bug.cgi?id=768006
2016-06-27 09:20:35 +03:00
Vivia Nikolaidou
6ac02f8595
flvdemux: Add support for H263 and MPEG4 part2
...
https://bugzilla.gnome.org/show_bug.cgi?id=768006
2016-06-24 15:30:03 +03:00
Tim-Philipp Müller
51a0dc2df2
flvdemux: fix indentation
2016-06-10 13:51:39 +01:00
Tim-Philipp Müller
c51831a245
flvdemux: fix date parsing when there are trailing spaces
...
Fixes parsing of "Thu May 11 15:57:46 2006 ".
https://bugzilla.gnome.org/show_bug.cgi?id=767496
2016-06-10 13:51:39 +01:00
Seungha Yang
4e23d206b9
flvdemux: Fix unref assertion failure
...
Fix unref assertion failure
https://bugzilla.gnome.org/show_bug.cgi?id=767424
2016-06-08 22:01:11 -04:00
Havard Graff
bcbb8fc1da
flvdemux: don't emit pad-added until caps are ready
...
In other words, gst_pad_get_current_caps should never return NULL
in a pad-added callback from the demuxer.
Added tests for the two special cases with AAC and H.264 where this
would happen every time.
https://bugzilla.gnome.org/show_bug.cgi?id=763780
2016-03-24 14:33:33 +02:00
Vineeth TM
1071309870
good: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763076
2016-03-24 14:32:20 +02:00
Havard Graff
1e09e5bfe9
flvdemux: fix eos event leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=762209
2016-02-19 14:54:04 +00:00
Tim-Philipp Müller
ff422c112f
flvdemux: relax creation time parsing
...
Parse wrong timestamps like we used to write as well,
e.g. 10:9:42, and the hour might be without a leading
zero in any case.
2015-10-21 11:53:09 +01:00
Tim-Philipp Müller
31b61f3add
flvdemux: fix indentation
2015-10-21 11:45:35 +01:00
Tim-Philipp Müller
a6eb0e5489
flvdemux: extract both creation date and time
...
Before we only extracted the date part.
2015-10-21 11:45:14 +01:00
Havard Graff
240b0ac9f6
flvdemux: output speex vorbiscomment as a GstTagList
...
This is what speexdec expects.
https://bugzilla.gnome.org/show_bug.cgi?id=755478
2015-10-11 11:12:27 +01:00
Havard Graff
a937c59acd
flvdemux: speex is also always 16KHz
...
This is just a cosmetic change for the logs, since the right caps
for Speex is being set elsewhere.
https://bugzilla.gnome.org/show_bug.cgi?id=755479
2015-10-11 11:07:00 +01:00
Jan Alexander Steffens (heftig)
439f98ed9a
flvdemux: Handle seek flags properly
...
Allows for non-keyframe seeks.
https://bugzilla.gnome.org/show_bug.cgi?id=738570
2015-07-06 10:30:42 -04:00
Vineeth TM
636d47d2d6
flvdemux: trivial cleanup
...
trivial patch to add proper ( while checking for if(G_UNLIKELY())
https://bugzilla.gnome.org/show_bug.cgi?id=751306
2015-06-22 11:13:32 +01:00
Jan Schmidt
c0d4986c8d
flv: When passing seek event upstream, hold a ref.
...
In case upstream can't handle the seek, make sure we
keep a ref on the event to attempt to handle it ourselves.
2015-03-31 00:20:48 +11:00
Mark Nauwelaerts
33cc1b4854
flvdemux: resurrect some flow return handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=744572
2015-03-29 13:58:56 +02:00
Sebastian Dröge
ac0141b6a0
flvdemux: Only set caps once if they don't change
...
Previously we were setting new caps with the same content for every H264 or
AAC codec_data we found in the stream, spamming everything and causing
renegotiations.
2015-03-24 16:18:53 +01:00
Sebastian Dröge
c9b42951fe
flvdemux: Don't create AAC/H264 caps without codec_data
...
Instead delay creating the caps until we read the codec_data from the stream,
or fail if we get normal data before the codec_data.
AAC raw caps and H264 avc caps always need codec_data, setting caps on the pad
without them is going to make negotiation fail most of the time. Even if we
later set new caps with the codec_data, that's usually going to be too late.
https://bugzilla.gnome.org/show_bug.cgi?id=746682
2015-03-24 16:15:04 +01:00
Sebastian Dröge
5e88b53212
flvdemux: Fix indention
2015-03-24 15:39:40 +01:00
Jan Alexander Steffens (heftig)
be8e3196a3
flvdemux: Don't repeatedly warn after no_more_pads (v2)
...
This can get rather spammy for such a high log level.
Only warn once per stream.
https://bugzilla.gnome.org/show_bug.cgi?id=746274
2015-03-16 12:01:43 +00:00
Jan Alexander Steffens (heftig)
ac8a272381
flvdemux: Introduce constant for no-more-pads threshold
...
https://bugzilla.gnome.org/show_bug.cgi?id=746274
2015-03-16 12:01:43 +00:00
Jan Alexander Steffens (heftig)
f2a1f74cec
flvdemux: Fix warning to contain 'video'
...
https://bugzilla.gnome.org/show_bug.cgi?id=746274
2015-03-16 12:01:43 +00:00
Jan Schmidt
2e00311fe1
flvdemux: Use gst_video_guess_framerate()
...
Use gst_video_guess_framerate() from libgstvideo to guess
sensible common framerates where possible from the
floating point fps in the stream.
2015-02-12 23:38:47 +11:00
Jan Alexander Steffens (heftig)
bf73d834b2
flvdemux: Restrict resyncing to TS regressions
...
The behavior of resyncing video and audio indepen-
dently can cause A/V desyncs. Lets restrict resyncs
to jumps backward for now.
https://bugzilla.gnome.org/show_bug.cgi?id=736397
2014-11-19 11:58:19 -05:00
Sanjay NM
ba4b9b22d0
flv: Removed unreachable break statements
...
https://bugzilla.gnome.org/show_bug.cgi?id=736884
2014-09-18 09:42:43 -04:00
Nicolas Dufresne
ff2bce7b26
flv: Tag timestamp are DTS not PTS
...
The tags in FLV are DTS. In audio cases, and for many video format this makes
no difference, but for AVC with B-Frames, PTS need to be computed from
composition timestamp CTS, with PTS = DTS + CTS.
https://bugzilla.gnome.org/show_bug.cgi?id=731352
2014-08-26 16:45:59 -04:00
Tim-Philipp Müller
6ee2665b7c
flvdemux: fix indentation
2014-08-13 11:59:39 +01:00