Commit graph

7894 commits

Author SHA1 Message Date
David Schleef
b3c15a340a theoraenc: Add encoder controls for libtheora 1.1
Added drop-frames, cap-overflow, cap-underflow, and rate-buffer.
2009-12-20 17:34:46 -08:00
Tim-Philipp Müller
848a7f2868 baseaudiosink: increase default drift tolerance to fix glitches with WMA
Increase default drift tolerance to 40ms to avoid glitches with decoders
or formats where there's a lot of timestamp jitter for some reason or
another (in this case: asf/wma), at least until we implement timestamp
smoothing.
2009-12-20 23:19:41 +00:00
Wim Taymans
8266d201a0 decodebin2: add some debugging 2009-12-16 11:44:11 +01:00
Mark Nauwelaerts
8b4f6dd43b audiorate: add a tolerance property
It may not be uncommon for the input timestamps to experience some jitter
around the 'perfect time'.  As such, instead of regularly adding and dropping
samples, optionally allow for some tolerance in a more relaxed approach.

API: GstAudioRate:tolerance
2009-12-15 19:51:08 +01:00
Mark Nauwelaerts
b5fe63ed79 audiorate: add documentation 2009-12-15 19:50:56 +01:00
Mark Nauwelaerts
60635a9fbc audiorate: use separate header file 2009-12-15 19:49:31 +01:00
Mark Nauwelaerts
4bbde64da6 audiorate: set DISCONT when resyncing (e.g. newsegment) 2009-12-15 19:49:28 +01:00
Mark Nauwelaerts
56d4534554 audiorate: also fill up segments if possible 2009-12-15 19:49:26 +01:00
Mark Nauwelaerts
a11a1858ed audiorate: fix segment handling
Do not compare a media (buffer) time to a (bogus) running time
(or their offset equivalents).
2009-12-15 19:49:24 +01:00
Mark Nauwelaerts
529db8b501 audiorate: properly report truncated samples as dropped samples 2009-12-15 19:49:22 +01:00
Tim-Philipp Müller
b529a33105 docs: mention that gst_tag_get_language_name() may return NULL 2009-12-13 18:43:56 +00:00
Tim-Philipp Müller
fc73a73f0a checks: some more testing for the new language code functions 2009-12-13 18:42:11 +00:00
Tim-Philipp Müller
4cb197999e docs: misc. mixer docs improvements 2009-12-12 18:58:39 +00:00
Tim-Philipp Müller
f71c4167e0 docs: add short descriptions for API reference contents page 2009-12-12 18:17:32 +00:00
Tim-Philipp Müller
25227e16b5 tag: make internal language names table static 2009-12-12 17:43:26 +00:00
Tim-Philipp Müller
3361d3286d tag: don't use GLib 2.22 API
g_mapped_file_unref() was introduced in GLib 2.22, but we depend
only on GLib 2.18, so use g_mapped_file_free() when compiling
against older GLib versions until we bump the GLib dependency.
2009-12-12 17:41:44 +00:00
Tim-Philipp Müller
088c7c07a2 tag: add some utility functions for language codes and tags
Add some utility functions for language tags and ISO-639
codes. These are useful for both GUIs and elements. The
iso-codes package is used for language name translations
if available.

API: gst_tag_get_language_codes()
API: gst_tag_get_language_name()
API: gst_tag_get_language_code()
API: gst_tag_get_language_code_iso_639_1()
API: gst_tag_get_language_code_iso_639_2B()
API: gst_tag_get_language_code_iso_639_2T()
2009-12-12 15:48:37 +00:00
Wim Taymans
e897373a0a ogg: ogm video has constant packet duration 2009-12-11 12:20:13 +01:00
David Schleef
118b62a764 oggdemux: implement old fLaC mapping 2009-12-10 22:48:23 -08:00
Wim Taymans
dc91454984 tcpclientsrc: unset flushing state too
When unlocking, we set the flushing state on the fdset. Implement unlock_stop so
that we can use it to unset the flushing state again.

Fixes #577326
2009-12-10 17:53:01 +01:00
Wim Taymans
d18118418e oggdemux: remove redundant fields 2009-12-10 16:09:09 +01:00
Wim Taymans
43bdb13ec2 vorbisdec: adapt to new oggdemux
Remove all granulepos hacks and simply use the timestamps from the new oggdemux
like any other decoder.
2009-12-10 13:22:00 +01:00
Wim Taymans
79b25e634c vorbisdec: fix peer query 2009-12-09 19:04:18 +01:00
Wim Taymans
1a7c8c7919 theoradec: fix query 2009-12-09 17:24:01 +01:00
Wim Taymans
f1fdf5d3e4 theoradec: small cleanups 2009-12-09 16:55:52 +01:00
Wim Taymans
08c16c0db7 vorbisdec: use gst_pad_peer_query() 2009-12-09 16:38:43 +01:00
Wim Taymans
26071d748f playsink: fix video when subtitles disabled
When we have a source with subtitles but they were disabled with the flags,
still ghostpad the video pad instead of leaving it unlinked.
2009-12-09 12:11:55 +01:00
Sebastian Dröge
01ca87e785 textoverlay: Only flush downstream on seeks for flushing seeks 2009-12-09 09:47:30 +01:00
Sebastian Dröge
d5205bb0fa textoverlay: Proxy buffer allocation on the video sinkpad to the srcpad 2009-12-09 09:36:26 +01:00
Wim Taymans
bc1302cf8e seek: update slider only 25 times a second
don't update the slider a 100 times a second, it's likely higher than the screen
framerate and just wastes cpu.
2009-12-08 17:37:56 +01:00
Wim Taymans
1818d795ee theora: remove granulepos hacks
Remove the granulepos hacking now that oggdemux outputs timestamps like any
other demuxer.
2009-12-08 17:37:56 +01:00
Sebastian Dröge
7bf631e448 playbin2: Fix stream-changed message list iteration
When iterating the list and removing the current element, first
get the next element and then remove the current one and not
the other way around.
2009-12-08 13:41:28 +01:00
Wim Taymans
1ad0e4342e oggdemux: improve keyframe seeking
Improve keyframe seeking.
Fix reverse playback.
2009-12-07 18:49:43 +01:00
Wim Taymans
c53cd385e3 oggdemux: implement keyframe seeking
Implement keyframe seeking in oggdemux by doing the double seek trick. First
seek to the required position, then read pages for all streams to grab the
granulepos (to know the timing of the keyframe) of each stream, then seek back
to the first keyframe.
2009-12-07 15:42:05 +01:00
Sebastian Dröge
49fd39c3fd playsink: Some minor cleanup 2009-12-07 09:13:40 +01:00
Sebastian Dröge
930a57db20 playbin2: Reset stream segments on FLUSH_STOP and don't adjust QoS events for non-time segments 2009-12-06 18:06:05 +01:00
Wim Taymans
56d3856620 oggdemux: fix timestamps after seek
After a seek, discard all packets before the packet with the granulepos on it so
that the output buffers contain valid timestamps.

Reorder some code so that we check the timestamps before allocating and pushing
an output buffer.

Do more checks on valid packets in ogm mode.
2009-12-04 16:35:09 +01:00
Wim Taymans
eb4fc976e5 oggdemux: add comment 2009-12-04 15:39:59 +01:00
Wim Taymans
9e222a385c oggdemux: don't do math with invalid granulepos
When the current granulepos is unknown and set to -1, don't try to add durations
to it.
2009-12-04 14:01:11 +01:00
Wim Taymans
96e1c4dbe6 oggdemux: guard against wrong granulepos
Clamp the initial granulepos to 0 instead of going negative for some badly muxed
ogg files.
2009-12-04 13:14:57 +01:00
Wim Taymans
05f4605180 theoradec: don't fail on bogus granulepos
Do some additional checks on the granulpos timestamp before using it for
calculating the duration because oggdemux generates wrong granulepos now.
Fixes seeking somewhat again.
2009-12-04 12:26:47 +01:00
David Schleef
8bbe0d126a oggdemux: reimplement OGM support
OGM demuxing no longer requires helper elements.  It's done internally
in oggdemux.  Vorbis comments are still not handled because I don't
have anything to test with.
2009-12-03 20:05:29 -08:00
David Schleef
4378851102 oggdemux: fix for I-frame-only theora 2009-12-03 17:02:11 -08:00
Tim-Philipp Müller
fb07615baa ogg: log when ogg mapper doesn't accept the setup header packet 2009-12-03 23:43:29 +00:00
Tim-Philipp Müller
8195c26a08 ogg: extract width, height and PAR from theora header and add to caps 2009-12-03 23:43:29 +00:00
Tim-Philipp Müller
295b6c0326 ogg: extract number of channels from FLAC, speex and vorbis headers
Because we can.
2009-12-03 23:43:09 +00:00
Stefan Kost
e6e9e3c589 build: fix build with debug logging disabled. 2009-12-03 23:38:54 +02:00
Tim-Philipp Müller
2752ae841e ogg: more print fixes
gstoggstream.c:419: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘gint64’
gstoggdemux.c:2253: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’
gstoggdemux.c:2333: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’
2009-12-03 21:08:42 +00:00
Thiago Santos
098e416ebc ogg: Fixing some printf format strings
Fixes some printf format strings to make it build on mac.
2009-12-03 16:57:48 -03:00
Stefan Kost
a6cf29fd3d playbin2: don't iterate the factory lists in non-debug mode
When debugging is disabled, we won't see anything printed anyway.
2009-12-03 18:08:49 +02:00