Edward Hervey
0a49b93ade
oggdemux: Wait for push loop to be started
...
Code using the push_loop_thread (using for sending seeks) assumes
that the thread was properly started, except that this isn't always
true and the thread might not have completely started.
Instead wait for the thread to properly start before doing anything
else.
2017-11-07 15:16:52 +01:00
Edward Hervey
5e373936bb
oggstream: Ensure enough bytes for fishead header parsing
2017-11-06 14:29:26 +01:00
Edward Hervey
af48682d44
oggstream: Use proper type for sample calculation
...
If we are going to return a (potentially) 64bit integer, don't use
a 32bit one for calculation, otherwise we could end up exceeding
the maximum size of a 32bit int.
2017-11-05 12:16:13 +01:00
Edward Hervey
7f5ffcaa49
oggstream: More fixes for invalid granuleshift
...
Don't use granuleshift if it wasn't set
2017-11-05 12:15:33 +01:00
Edward Hervey
2cf5d596ee
oggstream: Fix default granuleshift usage
...
For stream mappers that don't set a specific granuleshift, it will
have the default value of -1.
Protect the code for that and return the granule value as-is
2017-11-04 11:50:13 +01:00
Edward Hervey
1172e5efc7
oggdemux: Protect against invalid granule positions
...
Only valid values are -1, 0 or positive values. Anything else is
most likely corrupted data streams
2017-11-04 11:50:10 +01:00
Edward Hervey
33dfed5af8
oggdemux: Only track time for initialized streams
...
in push-mode we only can track time (or most operations on streams
for that matter) if the underlying GstOggMap was properly initialized.
2017-11-01 18:39:26 +01:00
Edward Hervey
c3006b17d1
oggstream: Add a default GstOggMap
...
Since the default value of a GstOggPad.map.map was 0 ... we would
end up using wrong functions from mappers() if the stream wasn't
initialized yet.
Instead of that, use a default blank/empty first entry.
2017-11-01 18:39:26 +01:00
Edward Hervey
f1c44332d5
ogmparse: Ensure we don't create bogus fractions
...
The clamping of the fraction denominator was bogus (it needs to
be >0)
2017-11-01 11:19:58 +01:00
Edward Hervey
eb8bf0f162
oggdemux: Fix chain leak in push mode
...
In some corner cases we end up with the building chain not being
properly tracked (and therefore not properly freed).
Add a FIXME so it can later be fixed, but for now just fix the leak
2017-11-01 11:18:12 +01:00
Edward Hervey
0297bc2a4f
ogmparse: Error out if we can't figure out the format
...
In some cases we might not be able to figure out the fixed format
from the header.
Properly error out in those cases.
2017-11-01 10:32:54 +01:00
Edward Hervey
e638f81165
ogg: Don't add tags to empty taglist
2017-10-31 11:57:19 +01:00
Edward Hervey
90106b6bf2
oggdemux: Don't forget to reacquire lock when needed
...
Fixup to ef93130cf0
I overlooked the issue. There is a case when the lock is released
and we need to reacquire it
2017-10-26 10:07:15 +02:00
Edward Hervey
6fd8d78d8b
oggdemux: Don't drop sticky events
...
Previous commit was wrong. We should still send all events to the
pad (so that sticky events get attached to it and sent when pad
gets added).
2017-10-24 11:05:20 +02:00
Edward Hervey
e8a60b3de9
oggdemux: Improve handling of EOS without source pads
...
We might have a chain to use, but it might not have any active pads
Properly detect that and send an error message on EOS
2017-10-24 10:56:00 +02:00
Edward Hervey
f902286a26
oggdemux: Error out on EOS if we have no chains to use
...
There are not active and pending chains, if we get EOS we need to
inform the user via an error message
2017-10-20 18:41:52 +02:00
Edward Hervey
ef93130cf0
oggdemux: Don't double lock
...
The lock was already taken just before this block and is released after
2017-10-20 18:41:46 +02:00
Mathieu Duponchelle
8598f08278
opusenc: Allow unpositioned channels.
...
The input will be treated as a set of mono channels,
and the channel-mapping-family will be set to 255
(no defined channel meaning)
https://bugzilla.gnome.org/show_bug.cgi?id=788720
2017-10-11 19:42:39 +02:00
Ponnam Srinivas
0e8a510eda
alsasink: Fix Memory leak in payload not succuss case
...
https://bugzilla.gnome.org/show_bug.cgi?id=788114
2017-09-26 11:18:09 +03:00
Mark Nauwelaerts
20705f01fc
textoverlay: ensure text buffer has writable metadata when modifying
2017-07-01 17:45:36 +02:00
Mark Nauwelaerts
bd940e7126
textoverlay: adjust a valid text buffer duration to fall within segment
...
... as expected later on when end time is used to determine end running time.
Otherwise the latter is determined as NONE and the resulting text buffer is
then used indefinitely.
2017-07-01 17:44:22 +02:00
Mark Nauwelaerts
9c95303f3a
textoverlay: make debug statement more informative
2017-07-01 17:16:33 +02:00
Thibault Saunier
dd1e4f5ebb
alsasrc: Handle newly added GstStateChange values
...
https://bugzilla.gnome.org/show_bug.cgi?id=783798
2017-06-20 09:19:53 -04:00
Tim-Philipp Müller
e774d1ca4b
meson: use dep.get_pkgconfig_variable()
...
instead of calling pkg-config ourselves.
2017-06-05 23:57:48 +01:00
Vincent Penquerc'h
bb0abf8558
oggdemux: fix artifacts at chain boundaries
...
https://bugzilla.gnome.org/show_bug.cgi?id=782132
2017-05-29 16:22:04 +01:00
Edward Hervey
62df7fdaba
pango: Handle failure to multiply fractions
...
And set PAR back to the default value of 1:1
CID #1409851
2017-05-26 18:02:12 +02:00
Vincent Penquerc'h
523e98396f
oggdemux: fix clipping more samples than exist in the first packet
...
This can happen in Opus (and maybe other codecs ?), and would cause
failure to play.
https://bugzilla.gnome.org/show_bug.cgi?id=782157
2017-05-26 14:41:47 +01:00
Mark Nauwelaerts
6d6a6bc3d8
textoverlay: optionally scale text to ensure proper display text aspect ratio
...
... by prescaling with an inverse aspect scaling as applied by video scaling
2017-05-21 12:46:36 +02:00
vijay
f460d7d184
alsa: Add mapping for PCM F32/F64 formats
...
Fix enables float pcm formats for both the alsasrc and alsasink
https://bugzilla.gnome.org/show_bug.cgi?id=782695
2017-05-17 10:33:52 -04:00
Nicolas Dufresne
e0d793f793
alsasink: Accept MPEG 1 layer 3 version 2.5
...
https://bugzilla.gnome.org/show_bug.cgi?id=781929
2017-05-16 15:37:16 -04:00
Nicolas Dufresne
8e6c6266d7
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 13:42:07 -04:00
Vitor Massaru Iha
c579a4298b
textoverlay: Removing duplicated command.
...
gst-launch-1.0 was duplicated on textoverlay example.
https://bugzilla.gnome.org/show_bug.cgi?id=782018
2017-05-01 18:52:42 +01:00
Tim-Philipp Müller
4246198fb3
No need for newlines in debug log statements
2017-04-12 09:58:49 +01:00
Thibault Saunier
099ac9faf2
docs: Convert gtkdoc comments to markdown
...
Modernizing the documentation, making it simpler to read an
modify and allowing us to possibly switch to hotdoc in the
future.
2017-03-10 18:19:17 -03:00
Jan Schmidt
8596ec23cb
oggdemux: Fix reverse playback
...
Fix various issues with reverse playback by clearing tracking
vars when working in reverse, and where possible using the
timestamp interpolation code to generate timestamps for
outgoing buffers. Make sure to mark things as discontinuous
only when looping backward to a new position and fix seeking
to the next page when starting.
2017-03-04 00:30:37 +11:00
Jan Schmidt
fe1f47aa17
oggdemux: Timestamp tracking fixes
...
In gst_ogg_demux_do_seek() when calculating the
keyframe time, account for a non-zero start-time
Handle a discontinuous first packet in
gst_ogg_demux_setup_first_granule() because that's pretty
normal after a seek. Also differentiate between a genuinely
truncated first packet and just bailing out early, by not using
granule = -1 as an error code.
Make the debug output logs clearer about which timestamps
are stream times (PTS) and which are ogg timestamps.
2017-03-04 00:30:37 +11:00
Jan Schmidt
342132a700
oggdemux: Don't arbitrarily guess a timestamp of 0
...
When we haven't managed to manufacture a timestamp for
a packet, don't just guess '0', leave it at none and
let downstream decide
2017-03-04 00:30:37 +11:00
Jan Schmidt
924c44f369
theoradec: Make the keyframe condition check clearer
...
Make the keyframe checking if statement easier to
read, and add some debug when detecting a keyframe
2017-03-04 00:30:37 +11:00
Edward Hervey
e575be6dc6
vorbisdec: Reset decoder in more situations
...
This is a followup commit to b95725c37e
* Resetting the decoder should only happen when we get a new initialization
header (0x01) and not on the other headers
* The initialized variable only gets set to TRUE once all headers have
been parsed. Also check if the vorbis_info struct has been properly resetted
also. Failure to do that would cause vorbisdec to error if it got
two initialization header in a row (the first would configure the underlying
library and the second one would error out because it's already initialized)
https://bugzilla.gnome.org/show_bug.cgi?id=779515
2017-03-03 10:56:22 +01:00
Jochen Henneberg
b95725c37e
vorbisdec: reset decoder on vorbis headers update
...
if the vorbis encoder receives new headers it must be
reset and re-initialized to continue decoding, e. g.
for live streams
2017-02-27 19:17:58 +02:00
Sebastian Dröge
bb051c14b3
vorbisenc: Resend (new, updated) headers when the caps are changing
...
The headers are usually changing together with the caps, and they are
nedeed for correct decoding.
2017-02-27 19:04:30 +02:00
Jochen Henneberg
0c2c82ad69
vorbis: Fix channel reorder map for 5.1, 6.1 and 7.1
2017-02-20 13:45:09 +02:00
Sebastian Dröge
9795115564
gst: Don't declare variables inside the for loop header
...
This is a C99 feature.
2016-12-13 22:26:08 +02:00
Jan Schmidt
226dfc3f32
ogg: Fix element factory klass for OGM parsers
...
They're parsers, not decoders, so fix the klass info
accordingly.
2016-12-09 18:06:35 +11:00
Sebastian Dröge
732ecf0925
oggdemux: Don't end up ignoring caps just because there are no headers for this stream
...
https://bugzilla.gnome.org/show_bug.cgi?id=775459
2016-12-01 15:12:59 +02:00
Sebastian Dröge
d34e326425
textoverlay: Mark pad as needing reconfiguration again if it failed
...
And return FLUSHING instead of NOT_NEGOTIATED on flushing pads.
https://bugzilla.gnome.org/show_bug.cgi?id=774623
2016-11-18 12:04:27 +02:00
Scott D Phillips
115ccfe679
meson: vorbis: Add -DTREMOR to flags for gstivorbisdec
...
Matching the flags set by Makefile.am
https://bugzilla.gnome.org/show_bug.cgi?id=774445
2016-11-15 12:45:42 +11:00
Scott D Phillips
ab3c8caeed
Remove 'return' from void
functions
...
https://bugzilla.gnome.org/show_bug.cgi?id=774293
2016-11-12 10:51:30 +02:00
Vincent Penquerc'h
9121131f31
opusdec: fix 120 ms buffers being wrongly emitted
...
Using the max 120 ms buffer size to ensure we have enough space
for decoded data meant that Opus could actually return 120 ms'
worth of data.
https://bugzilla.gnome.org/show_bug.cgi?id=771723
2016-11-04 16:59:26 +00:00
Vincent Penquerc'h
b0866b9cc1
opusdec: interpret zero duration as unknown
...
This fixes missing audio when we get buffers with zero
duration, denoting unknown duration. When several such
buffers are received in a row, they're all at the same
timestamp, with zero duration.
https://bugzilla.gnome.org/show_bug.cgi?id=771723
2016-11-01 19:58:42 +02:00