Commit graph

106 commits

Author SHA1 Message Date
Vincent Penquerc'h
22aa87e98f ogg: implement packet duration query for kate streams
https://bugzilla.gnome.org/show_bug.cgi?id=637519
2010-12-18 20:33:09 +01:00
Mark Nauwelaerts
524b7c60f2 oggstream: additional tag extraction
... supporting theora, flac, speex, celt.

Fixes #629349.
2010-12-03 13:54:08 +01:00
Mark Nauwelaerts
d5055a9f23 oggstream: use separate tag extraction vfunction 2010-12-03 13:54:06 +01:00
Mark Nauwelaerts
cc3dfd31d0 oggstream: refactor vorbis comment tag extraction 2010-12-03 13:54:04 +01:00
Mark Nauwelaerts
515f33bd3b oggstream: streamline tag extraction and prevent some leaks 2010-12-03 13:53:59 +01:00
Sreerenj Balachandran
2319c85f46 oggdemux: perform more (vorbis comment header) tag extractions
In particular, move comment header parsing to gstoggstrem.c.
Thanks to Felipe Contreras.

Fixes #629349 (partially).
2010-12-03 13:53:54 +01:00
David Schleef
d421ccb440 oggstream: fix incorrect warning on skeleton headers 2010-12-02 17:36:33 -08:00
David Schleef
2b91bd1bad oggparse: Set DELTA_UNIT on buffers 2010-12-02 17:36:26 -08:00
Wim Taymans
6c14f6c970 ogg: add some more debug statements 2010-10-29 11:47:53 +01:00
David Schleef
5ae2f04856 oggdemux: move is_sparse into stream map 2010-10-12 16:06:56 +02:00
Sebastian Dröge
5fd9fc13d5 oggstream: static forward declarations are forbidden by the C standard
...and actually cause compiler errors on VC++. Change it to an extern
forward declaration and non-static definition.
2010-08-08 17:42:04 +02:00
Tim-Philipp Müller
0f3ea721e4 ogg: fix debug message printf format some more
Just cast the pointer diff, so it works everywhere without
warnings. Can't use %tu, because that modifier is C99. Warning
was: "format '%li' expects type 'long int', but argument 8 has
type 'int'".
2010-06-14 00:33:04 +01:00
Philippe Normand
c25bf9777a oggdemux: Fix format string compiler warning on OS X 2010-06-12 13:04:43 +02:00
Sebastian Dröge
7bade30f5e oggstream: Implement latest version of the Skeleton 4.0 spec
Fixes bug #620939.
2010-06-09 16:34:05 +02:00
Sebastian Dröge
3f3691085a oggdemux: Implement correct parsing of Skeleton 4.0 index packets 2010-06-08 13:11:05 +02:00
Sebastian Dröge
cba98e05cf oggdemux: Add parsing of Skeleton 4.0 indexes 2010-06-08 12:01:15 +02:00
Sebastian Dröge
f213c8ebe3 oggdemux: Parse segment length and content offset from fishead
And print them for debugging purposes. Not sure if we can do anything useful
with this information.
2010-06-08 11:40:32 +02:00
Sebastian Dröge
aa8daa862e oggdemux: Parse Skeleton stream major/minor version 2010-06-08 11:31:35 +02:00
Sebastian Dröge
7eea3c25c9 oggdemux: Use binary search for searching in the index 2010-06-08 11:26:26 +02:00
Sebastian Dröge
bf9d573cd1 oggdemux: Fix size checks 2010-05-20 13:58:14 +02:00
Sebastian Dröge
8fd69f2cb7 oggdemux: Drop all other Ogg VP8 header packets and make VP8 mapping check a bit more strict 2010-05-20 10:19:29 +02:00
Sebastian Dröge
563a96ef1a ogg: Some more minor adjustments for the VP8 Ogg mapping 2010-05-20 08:52:49 +02:00
Sebastian Dröge
838c96fe8f ogg: Update to the latest VP8 mapping 2010-05-19 21:35:19 +02:00
Sebastian Dröge
ac2d0170a8 oggdemux: Fix granulepos->key granule calculation for Dirac 2010-05-19 19:23:07 +02:00
Sebastian Dröge
d6b6d0cdad oggdemux: Add support for mapping specific granulepos to key granule mapping 2010-05-19 19:23:07 +02:00
Sebastian Dröge
5fc1309703 ogg: Implement Ogg VP8 mapping 2010-05-19 19:23:07 +02:00
Wim Taymans
549bc3c80e oggdemux: use index to estimate bitrate
When we have an index, use it to much more accurately estimate the total stream
bitrate.
2010-05-06 10:58:01 +02:00
Wim Taymans
7b3f9aa504 oggdemux: handle corrupt indexes
Make sure we handle and receover from corrupt indexes.
2010-05-04 17:38:50 +02:00
Wim Taymans
50e556cc84 oggstream: avoild division by 0 2010-05-04 13:51:07 +02:00
Wim Taymans
5c770a17db oggstream: parse duration from 3.3 skeleton 2010-05-04 13:02:19 +02:00
Wim Taymans
ff4479f00a oggdemux: more index parsing work 2010-05-04 12:11:18 +02:00
Wim Taymans
97319a6276 oggdemux: clean up fishead/fisbone parsing
Remove some redundant code for parsing fishead streams. Actually use the data we
parsed (mostly start_time).
2010-05-04 12:05:15 +02:00
Wim Taymans
f9ca4f6097 oggdemux: use bitrate to estimate length in pushmode
Parse the bitrate from the various streams.
Use the bitrate and the upstream length in bytes to estimate the total stream
duration in push mode.
2010-04-30 17:43:06 +02:00
Sebastian Dröge
482dd1e56a oggdemux: Provide packet duration function for old FLAC mapping too
Fixes bug #613809.
2010-03-26 15:57:39 +01:00
Benjamin Otte
43b1683421 Add -Wmissing-declarations -Wmissing-prototypes to warning flags
Includes all the fixes necessary to make stuff compile again.
2010-03-11 13:50:31 +01:00
Wim Taymans
6eef04c1cb oggstream: mark skeleton streams correctly
Mark skeleton streams because we need to ignore them for calculating the
duration of the stream.

Fixes #611227
2010-03-01 12:17:40 +01:00
Tim-Philipp Müller
466894d2f4 ogg: theora PAR of 0:N, N:0 or 0:0 is allowed and maps to 1:1
See #609252.
2010-02-15 00:14:03 +00:00
Vincent Penquerc'h
6b8175d96a oggdemux: use the default granpos functions for kate streams
Set timestamps on kate packets. See bug #600929.
2010-02-07 10:16:28 +01:00
Vincent Penquerc'h
25873a050f oggdemux: properly set up the media type for kate streams
See #600929.
2010-01-25 23:49:53 +00:00
Wim Taymans
06e2d2791b oggstream: don't call NULL setup functions
If we find a known mapper but it doesn't have a setup function, simply skip it
instead of crashing.
2010-01-21 17:39:51 +01:00
Wim Taymans
4ed58b5882 oggstream: avoid division by 0 on bad annodex streams 2010-01-21 17:39:51 +01:00
Mark Nauwelaerts
3f4820d6c2 oggdemux: decide flac header packet by content rather than count 2010-01-06 14:03:44 +01:00
Mark Nauwelaerts
8fb183c7c9 oggdemux: enhance flac packet duration calculation 2010-01-05 16:44:58 +01: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
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
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
David Schleef
d2c9d7fc1c oggdemux: handle theora streams with 0 keyoffset 2009-11-26 14:16:28 -08:00
David Schleef
8c202593c6 oggdemux: Fix timestamp generation for theora
Timestamp generation was broken by the last commit for formats
with a non-zero granule shift.  Also keep track of the last keyframe
so that we can regenerate granulepos for theora.
2009-11-24 22:08:09 -08:00
David Schleef
78aad52cbf oggdemux: Fix vorbis parsing
Add a granule to granulepos conversion function.  Fix the duration
function for vorbis.  Handle timestamps on header packets differently
and be more careful about calculating OFFSET and OFFSET_END.  After
this change, timestamps for vorbis don't exactly match up with the
timestamps that vorbisparse outputs, but it's unclear if vorbisparse
is actually correct and it would add a lot more code to make oggdemux
match vorbisparse.  Fixes #602790.
2009-11-24 21:22:03 -08:00
David Schleef
72edd1467b ogg: Add ogg stream parsing
Adds code that parses headers of various formats encapsulated in
Ogg in order to calculate timestamps and durations of each buffer.
Removes the creation of helper decoder elements to do this calculation
via conversion queries.

Fixes: #344013, #568014.
2009-11-21 19:40:42 +01:00