Wim Taymans
fea50233bb
oggdemux: only keep last valid granulepos
...
Only keep the last valid granulepos we see when scanning the last
pages. It is possible that the last page that we inspect has a -1 granulepos, in
which case we want to keep the previous valid time instead.
Fixes #631703
2010-10-12 16:06:57 +02:00
David Schleef
9dc59cff15
oggdemux: Fix check for last page
2010-10-12 16:06:57 +02:00
David Schleef
64dfad46f2
oggdemux: change checks from is_skeleton to is_sparse
2010-10-12 16:06:57 +02:00
David Schleef
5ae2f04856
oggdemux: move is_sparse into stream map
2010-10-12 16:06:56 +02:00
Guillaume Emont
b41cd04289
oggdemux: fix seeking with negative rate with skeleton
...
Files with a skeleton, or other files with a stream that ends before the end of
the chain would start playing from the end of the chain when trying to seek with
a negative rate at a position between the end of any stream and the end of the
chain.
This is due to the loop in _do_seek() assuming that pages will be encountered
for all streams shortly after the place where we want to seek, as found by
do_binary_search().
In the first iteration of the loop, stream ends are now checked against the
time of the current page.
2010-10-10 18:26:13 +02:00
Sebastian Dröge
6357bdef63
oggdemux: Don't reset the pad when pushing resulted in NOT_LINKED
...
The pad might be linked later and after resetting it it will
only work after resetting all of oggdemux.
2010-08-30 15:50:26 +02:00
Sebastian Dröge
b899bca94d
oggdemux: Don't use GST_FLOW_IS_FATAL()
...
And while we're at it, handle WRONG_STATE as error too
in oggdemux and WRONG_STATE and NOT_LINKED in oggaviparse.
2010-08-27 17:23:46 +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
Fredrik Söderquist
3c06cabb0b
oggdemux: Handle errors from _get_next_page in _do_seek.
...
If the source element failed here, oggdemux would crash.
Fixes #623218 .
2010-06-30 17:20:55 +01:00
Sebastian Dröge
9a971980b7
oggdemux: activate_chain must not be called with a NULL chain
...
It will crash later and shouldn't really happen anyway unless
something is really wrong.
2010-06-14 11:11:56 +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
4caee01a06
oggdemux: Handle SEEKING query in push mode too
2010-06-09 17:02:59 +02:00
Sebastian Dröge
bb7773b40a
oggdemux: Update the total time from the Skeleton 4 indexes
...
Fixes bug #620939 , see bug #607945 .
2010-06-09 16:38:34 +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
981af36b71
oggmux: Start a new page for every CMML buffer
2010-06-08 07:34:53 +02:00
Sebastian Dröge
8a678da1fe
oggdemux: Fix sizes again, this time for real
2010-05-20 14:21:19 +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
02a78f528c
oggdemux: don't seek when no current chain
...
Avoid a crash when we try to seek when there is no current chain.
2010-05-06 13:10:54 +02:00
Wim Taymans
e33425e4d0
oggdemux: ignore the skeleton start time
...
Ignore the skeleton start time as it is usually wrong for live streams
and we have the needed logic to calculate it anyway.
2010-05-06 12:21:38 +02:00
Wim Taymans
27de725038
oggdemux: wait for headers before exposing chains
...
Wait until we have all the stream headers before we start exposing the streams
of a chain.
2010-05-06 12:06:09 +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
Tim-Philipp Müller
f22b115804
oggdemux: printf format fixes
2010-05-05 13:25:02 +01: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
e84b3c838c
oggdemux: fix EOS check
2010-05-04 15:47:29 +02:00
Wim Taymans
50e556cc84
oggstream: avoild division by 0
2010-05-04 13:51:07 +02:00
Wim Taymans
12929944a7
oggdemux: cleanup unused defines
2010-05-04 13:50:46 +02:00
Wim Taymans
a57b461af8
oggdemux: use the index in push mode when we can
...
When seeking in push mode, try to use the index first before we use the bitrate
estimation.
2010-05-04 13:36:58 +02:00
Wim Taymans
03c3aa6377
oggdemux: use skeleton duration when possible
2010-05-04 13:06:24 +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
f96caa17b3
oggdemux: implement seek in push mode
...
Refactor start time collection code.
When we receive a flush_stop, resync to the new start time and push out a new
segment event.
2010-05-04 11:26:14 +02:00
Wim Taymans
9be4e53001
oggdemux: make event handling better
...
Explicitly handle FLUSH events and resync on FLUSH_STOP.
Make send_event return a boolean.
Use more performant send_event function to forward events.
2010-05-04 11:26:14 +02:00
Wim Taymans
c4ec1c4c62
oggdemux: implement seeking in pushmode
...
Convert seek requests to bytes using the bitrate and forward them upstream. Does
not quite work because the flushing and resyncing is not implemented yet.
2010-05-04 11:26:14 +02:00
Wim Taymans
d9b7003926
oggdemux: refactor for seeking in pushmode
...
refactor the code a little to prepare for seeking in push mode
2010-05-04 11:26:14 +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
Mark Nauwelaerts
e23d6bbda7
oggdemux: only EOS when all streams are EOS
2010-04-30 12:51:54 +02:00
Mark Nauwelaerts
e8ae2adef1
oggdemux: fix debug message
2010-04-30 12:51:51 +02:00
Stefan Kost
efe59faa93
docs: fix typo in link name
2010-04-16 15:53:27 +03:00
Tim-Philipp Müller
62b1764552
playback, ogg: dist new gstplayback.h and gstogg.h
2010-04-09 09:26:08 +01: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
Tim-Philipp Müller
58a92964c6
build: Makefile.am fixes
...
Mostly just add missing $(GST_BASE_CFLAGS), but also fix up order
of flags (see docs/random/moving-plugins).
2010-03-19 01:00:36 +00:00
Benjamin Otte
420d7b111d
More ENABLE_NLS fixes
2010-03-16 18:31:15 +01:00
Benjamin Otte
5e21fa5e0e
gst_element_class_set_details => gst_element_class_set_details_simple
...
Also change my email from the old university one to the current one.
2010-03-16 17:41:50 +01:00
David Schleef
460c649b5f
oggdemux: Don't drop zero-sized packets
...
Zero-sized packets have relevence to Theora.
2010-03-14 13:15:13 -07:00
Benjamin Otte
3a7d632a59
Add -Wredundant-decls to warning flags
...
... and fix all the warnings that flag throws.
2010-03-11 15:38:18 +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
David Schleef
1701c706ec
oggmux: Don't flush after every frame for theora
2010-03-09 15:40:18 -08:00
David Schleef
38e6f0c7ed
oggdemux: fix dirac header parsing
...
Fixes #611900 .
2010-03-08 17:07:57 +00: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
Wim Taymans
63593f5f1e
oggdemux: use the chain begin_time instead of our counter
...
We update the passed begintime argument to narrow our search region in the
binary search. This means that it does not always contain the chain begin time
after a couple of bisects. Use the real chain->begin_time to bring the
granuletime to the time in the chain instead.
Fixes #610005
2010-02-23 12:26:15 +01:00
Sebastian Dröge
59dc89b3ee
oggparse: Fix another format string compiler warning
2010-02-15 09:04:17 +01:00
Sebastian Dröge
e9f101ffc5
oggdemux: Fix format string compiler warnings
2010-02-15 08:56:25 +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
Sebastian Dröge
4914aeda2f
oggdemux: Don't leak allocated buffers
...
This can happen if the combined flow return is not OK although the
allocation succeeded or if the packet in question is a BOS and we're
not going to push headers.
Fixes bug #608699 .
2010-02-02 10:33:07 +01:00
Vincent Penquerc'h
ed2e09133e
oggdemux: sparse streams aren't timed by end time, and their duration isn't implicit
...
Fixes timestamps and durations on Kate subtitle streams.
See http://www.xiph.org/ogg/doc/ogg-multiplex.html section 'start-time and
end-time positioning' for some more details, and bug #600929 .
2010-01-25 23:50:09 +00: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
e4b68a3658
oggdemux: use right type for the serialno
...
Use a consistent type for the serialno to avoid problems when comparing between
signed and unsigned variants.
Fixes #607926
2010-01-25 15:14:56 +01:00
Wim Taymans
95511c8821
oggdemux: don't push headers twice
...
Don't push the stream headers twice but only in the activation of a chain.
Fixes #607929
2010-01-25 14:00:52 +01:00
Wim Taymans
62f8c3c672
oggdemux: rename a variable
...
Rename the 'seekable' variable to 'pullmode'. We might be able to seek in push
mode too eventually.
2010-01-25 12:31:24 +01:00
Tim-Philipp Müller
e1c319949d
oggdemux: fix crash when freeing headers
...
Use _ogg_packet_free() instead of gst_mini_object_unref in one more
place now that the header list contains ogg packets and not buffers.
file: Stephen_Fry-Happy_Birthday_GNU-nq_600px_425kbit.ogv
2010-01-24 13:32:20 +00:00
Sebastian Dröge
1652005f26
oggdemux: Strip trailing \0 for subtitle OGM streams
...
Fixes bug #607870 .
2010-01-24 08:57:13 +01:00
Sebastian Dröge
a66ce94adc
oggdemux: Correctly set DELTA_UNIT flag for OGM streams
2010-01-23 22:10:09 +01:00
Sebastian Dröge
b38dcf5277
oggdemux: Don't strip all 0-bytes from the end of OGM packets
...
This fixes broken packets pushed downstream by oggdemux for
MPEG4 streams for example.
2010-01-23 22:10:09 +01:00
Sebastian Dröge
592bc87dc9
oggdemux: Extract tags from OGM text streams and don't push them downstream
2010-01-23 22:10:08 +01:00
Sebastian Dröge
541da50c53
oggdemux: Store header/queued packets as ogg_packet and use normal peer chaining functions to pass them downstream
2010-01-23 22:10:08 +01:00
Sebastian Dröge
d78cffb2e8
oggdemux: ...and set caps on queued packet buffers too
2010-01-23 13:20:46 +01:00
Sebastian Dröge
b63a582bf9
oggdemux: Set caps on header buffers
2010-01-23 13:19:44 +01:00
Wim Taymans
4b9666aedb
oggdemux: keep track of added pads
...
Keep track of the pads we added and removed.
Remove some unused fields.
Don't add pads for which we don't have caps.
2010-01-21 17:39:52 +01: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
Thiago Santos
4b771bff7a
oggdemux: No need to subtract begin time
...
Last stop is already based on the chain start and there is no need
to subtract the chain start as it may lead to a negative overflow.
This was causing seeking issues when the target chain was not
the first one (that has chain start = 0)
Fixes #606382
2010-01-19 08:39:14 -03:00
Thiago Santos
125f7dfdb0
oggdemux: granulepos is relative to its chain
...
When performing seeks, the granulepos should be offset by
its chain start time to avoid using wrong values to
update segment's last_stop. A sample file is indicated on
bug #606382
2010-01-18 15:39:55 -03:00
Edward Hervey
7d2c90423a
oggdemux: Fix unitialized variable.
...
If the package isn't handled, gracefully return GST_FLOW_OK.
2010-01-12 16:35:50 +01:00
Wim Taymans
0201326db1
oggdemux: push headers when activating chains
...
Keep a list of headers for each stream of a chain. When a chain is activated,
push the headers before pushing the data so that decoders can sync.
Fix seeking in chains, take the chain start time into account when comparing
timestamps.
See #606382
2010-01-08 16:57:40 +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
66545eb7a2
oggdemux: reset header packet count at bos page
2010-01-06 14:03:41 +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
Wim Taymans
d18118418e
oggdemux: remove redundant fields
2009-12-10 16:09:09 +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
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
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
a8e99f80df
oggdemux: Handle unknown streams
2009-11-26 14:16:28 -08:00
David Schleef
9339cec787
oggdemux: Reset last_granule during seeking
...
Fix case where we would reconstruct the wrong granulepos for
outgoing streams immediately after a seek.
2009-11-25 00:46:55 -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
ab0d802781
ogg: Fix generation of timestamps and durations
...
After changing some internal functions, I forgot to update
the code that puts the values on the buffers.
2009-11-21 22:05:34 +01: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
David Schleef
3019ebb107
oggmux: don't overwrite object properties
2009-11-21 19:40:42 +01:00
Josep Torra
26fcc7843a
ogg: fixes warnings on macosx snow leopard
2009-10-09 16:57:14 +02:00
Josep Torra
8579028dc0
oggdemux: fix a warning in macosx
2009-10-09 16:57:13 +02:00
Stefan Kost
ccf5d6551a
build: sprintf, sscanf need stdio.h
2009-10-07 11:56:35 +03:00
David Schleef
f126617dbd
oggdemux: Fix duration calculation for truncated files
...
If the last page of a stream has a granulepos of -1, that is,
it doesn't complete a packet, we need to continue to search
for the last granulepos.
2009-09-13 10:58:12 -07:00
Sebastian Dröge
ce51263142
oggdemux: Handle kate and cmml as sparse streams too
2009-09-10 10:16:56 +02:00
Tim-Philipp Müller
3a38a0958e
oggdemux: Better handling of sparse streams by sending segment updates
...
Fixes bug #397419 .
2009-09-10 10:16:56 +02:00
David Schleef
0e9bc5125a
Remove Ronald Bultje from Authors field
...
Replaced with "GStreamer maintainers
<gstreamer-devel@lists.sourceforge.net>" or just removed,
depending on the number of other authors.
2009-08-24 11:37:01 -07:00
Tim-Philipp Müller
099989ff0f
oggmux: don't drop the streamheader field from the output caps
...
Revert previous 'fix' for bug #588717 and fix it properly, whilst
maintaining the streamheader field on the output caps. Also make
sure we don't leak header buffers we couldn't push when downstream
is unlinked. Add unit test for the presence of the streamheader
field on the output caps and for the issue from bug #588717 .
2009-08-20 13:14:19 +01:00
Edward Hervey
76044dce6d
ext: Remove dead assignments and resulting unused variables.
2009-08-08 15:54:41 +02:00
Tim-Philipp Müller
16cad126f0
oggmux: fix warning when we're not linked downstream and error out properly
...
Fix caps warning when there's no element linked downstream, and pass
not-linked flow return value correctly up the chain, so we error out
correctly. Fixes #588717 .
2009-08-07 00:58:36 +01:00
Vincent Penquerc'h
0a5d5206f3
oggmux: add Kate caps to the list of accepted types
...
See #525743 .
2009-07-13 22:59:11 +01:00
Tim-Philipp Müller
12134979a2
oggdemux: post/send tags with the container-format tag
...
For this to work properly, theoradec and vorbisdec need to put
tag events received from upstream into the pending_events list
so they get pushed out after any newsegment event, not before.
2009-06-14 22:13:41 +01:00
Wim Taymans
acdb88ec6f
oggdemux: do reverse seeks more accurate
...
For reverse seeking with the accurate flag set, try to be more precise by
seeking a little bit after the requested position.
2009-06-12 13:44:26 +02:00
Tim-Philipp Müller
9ca2bf36de
subparse, ogmparse: post tags with GST_TAG_SUBTITLE_CODEC
...
Make subtitle parsers post a taglist with codec tags, so the application
knows what kind of subtitle a subtitle stream is. Fixes #576552 .
2009-06-11 22:32:28 +01:00
Wim Taymans
f0bb7874a7
oggdemux: fix boundary case for seeking.
...
When we have exactly 0 bytes left to search, make sure we stop instead of going
into an infinite loop.
2009-05-26 13:14:07 +02:00
Wim Taymans
ed36eafaba
oggdemux: don't loop when at EOS
...
When we try to read the last page, don't try to read past the upper boundary, as
this might cause endless loops.
See #582942
2009-05-19 12:45:59 +02:00
Sebastian Dröge
2ea16837e7
oggmux: Implement Preset interface
2009-05-15 16:27:40 +02:00
Christian Schaller
705e7750c5
Add ranks to the Oggmuxer, Vorbis encoder and Theora encoder
2009-05-12 12:17:55 +01:00
Wim Taymans
6cee823237
oggmux: small debug statement in DISCONT
2009-05-12 10:46:35 +02:00
Wim Taymans
7e43c10754
oggdemux: fix abuse of ogg API, handle broken oggs
...
When we feed the ogg sync layer, we need to feed it contiguous data even if the
sync layer did not consume all of it yet. This makes sure that it always finds
the next page even for more corrupted files. Use a different read_offset for
this purpose. since we now keep track of the sync layer, we don't have to reset
after finding a start of a page.
Add some more debug info for the error paths.
Only reset the sync layer when we perform a seek operation.
Avoid failure when the next chain has no bos pages but instead simply ignore it.
when we receive unknown page serial numbers mid stream, don't fail but post a
warning and hope that we get back on track later.
Fixes #579642
2009-05-12 10:44:17 +02:00
Wim Taymans
4e11b596cb
oggdemux: report -1 for duration in push mode
...
In push mode we must return TRUE from the duration query with a value of -1
meaning that we know that we don't know the duration.
2009-03-17 19:53:44 +01:00
Wim Taymans
51b5f33c3c
oggdemux: add some debug info
...
Add some debug info to log when the seek worked.
2009-03-13 15:26:40 +01:00
Wim Taymans
1ab0f8da50
ext/ogg/gstoggdemux.c: Use G_DEFINE_TYPE for the OggPad to get some threadsafe type init from glib.
...
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_class_init),
(gst_ogg_pad_dispose), (gst_ogg_pad_finalize):
Use G_DEFINE_TYPE for the OggPad to get some threadsafe type
init from glib.
2008-12-10 14:55:10 +00:00
Wim Taymans
bae0d688dd
ext/ogg/gstoggdemux.c: If no stream was found before receiving EOS, post an error message.
...
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_sink_event):
If no stream was found before receiving EOS, post an error message.
Fixes #561924 .
2008-11-25 15:28:36 +00:00
David Schleef
3d894ebe84
ext/ogg/gstoggmux.*: If we're muxing a dirac stream, flush the page after every picture.
...
Original commit message from CVS:
* ext/ogg/gstoggmux.c:
* ext/ogg/gstoggmux.h:
If we're muxing a dirac stream, flush the page after every picture.
2008-11-24 19:18:59 +00:00
Wim Taymans
7f347c61c0
ext/ogg/gstoggdemux.*: Copy seqnums around to track playback segments and messages.
...
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
(gst_ogg_demux_deactivate_current_chain),
(gst_ogg_demux_perform_seek), (gst_ogg_demux_handle_page),
(gst_ogg_demux_loop):
* ext/ogg/gstoggdemux.h:
Copy seqnums around to track playback segments and messages.
2008-11-04 17:24:35 +00:00
Stefan Kost
2cd4c7e2b9
Don't install static libs for plugins. Fixes #550851 for base.
...
Original commit message from CVS:
* ext/alsa/Makefile.am:
* ext/cdparanoia/Makefile.am:
* ext/gio/Makefile.am:
* ext/gnomevfs/Makefile.am:
* ext/libvisual/Makefile.am:
* ext/ogg/Makefile.am:
* ext/pango/Makefile.am:
* ext/theora/Makefile.am:
* ext/vorbis/Makefile.am:
* gst/adder/Makefile.am:
* gst/audioconvert/Makefile.am:
* gst/audiorate/Makefile.am:
* gst/audioresample/Makefile.am:
* gst/audiotestsrc/Makefile.am:
* gst/ffmpegcolorspace/Makefile.am:
* gst/gdp/Makefile.am:
* gst/playback/Makefile.am:
* gst/subparse/Makefile.am:
* gst/tcp/Makefile.am:
* gst/typefind/Makefile.am:
* gst/videorate/Makefile.am:
* gst/videoscale/Makefile.am:
* gst/videotestsrc/Makefile.am:
* gst/volume/Makefile.am:
* sys/v4l/Makefile.am:
* sys/ximage/Makefile.am:
* sys/xvimage/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for base.
2008-10-16 15:07:00 +00:00
Daniel Drake
43e1dcbd18
ext/ogg/gstoggmux.c: Unref all buffers when clearing collectpads. Fixes bug #546955 .
...
Original commit message from CVS:
Patch by: Daniel Drake <dsd at laptop dot org>
* ext/ogg/gstoggmux.c: (gst_ogg_mux_clear_collectpads):
Unref all buffers when clearing collectpads. Fixes bug #546955 .
2008-10-08 12:12:01 +00:00
Alessandro Dessina
4f9bfa6a03
ext/ogg/gstoggdemux.c: Don't add pads and activate them for skeleton streams. These are already handled inside oggdem...
...
Original commit message from CVS:
Patch by: Alessandro Dessina <alessandro nnva org>
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_deactivate_current_chain),
(gst_ogg_demux_activate_chain):
Don't add pads and activate them for skeleton streams. These are already
handled inside oggdemux. Fixes bug #537599 .
2008-08-23 15:19:59 +00:00
Sebastian Dröge
b0e3d44956
ext/ogg/gstoggmux.*: Don't pretend to support NEWSEGMENT events, instead override the
...
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_sink_event),
(gst_ogg_mux_request_new_pad):
* ext/ogg/gstoggmux.h:
Don't pretend to support NEWSEGMENT events, instead override the
GstCollectPads event function to return FALSE on NEWSEGMENT events
and do the normal work for other events.
This prevents elements like flacenc to seek to the start and rewrite
some data which then results in a broken Ogg packet.
2008-08-07 16:11:14 +00:00
Frederic Crozat
89be246154
Make sure gettext returns translations in UTF-8 encoding rather than in the current locale encoding ( #546822 ).
...
Original commit message from CVS:
Patch by: Frederic Crozat <fcrozat@mandriva.org>
* ext/alsa/gstalsaplugin.c: (plugin_init):
* ext/cdparanoia/gstcdparanoiasrc.c: (plugin_init):
* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c: (_do_init):
* gst-libs/gst/pbutils/pbutils.c: (gst_pb_utils_init):
* gst-libs/gst/tag/tags.c: (gst_tag_register_tags_internal):
* gst/playback/gstdecodebin.c: (plugin_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_plugin_init):
* gst/playback/gstplayback.c: (plugin_init):
* gst/playback/gstqueue2.c: (plugin_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_plugin_init):
* sys/v4l/gstv4l.c: (plugin_init):
Make sure gettext returns translations in UTF-8 encoding rather
than in the current locale encoding (#546822 ).
2008-08-07 15:58:58 +00:00
Sebastian Dröge
f9749dea39
ext/ogg/gstoggdemux.c: Don't use GST_CLOCK_TIME_NONE as start of NEWSEGMENT events.
...
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_peer),
(gst_ogg_demux_perform_seek), (gst_ogg_demux_handle_page):
Don't use GST_CLOCK_TIME_NONE as start of NEWSEGMENT events.
This fixes a critical warning.
2008-07-28 15:34:13 +00:00
Sebastian Dröge
6bccd1fcfe
ext/ogg/gstoggmux.c: Allow muxing of CELT into Ogg streams.
...
Original commit message from CVS:
* ext/ogg/gstoggmux.c:
Allow muxing of CELT into Ogg streams.
2008-07-28 13:12:51 +00:00
Jan Gerber
cd3fef0f39
ext/ogg/gstoggdemux.c: Fix calculation of the start time from skeleton streams.
...
Original commit message from CVS:
Patch by: Jan Gerber <j at oil21 dot org>
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_parse_skeleton_fisbone):
Fix calculation of the start time from skeleton streams.
Fixes bug #530068 .
2008-07-27 11:12:41 +00:00
Stefan Kost
2b33c755b6
Cleanup Plugin docs. Link to signals and properties. Fix sub-section titles. Drop mentining that all our example pipe...
...
Original commit message from CVS:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-overrides.txt:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/gst-plugins-base-plugins.hierarchy:
* docs/plugins/gst-plugins-base-plugins.interfaces:
* docs/plugins/gst-plugins-base-plugins.prerequisites:
* docs/plugins/gst-plugins-base-plugins.signals:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gdp.xml:
* docs/plugins/inspect/plugin-gnomevfs.xml:
* docs/plugins/inspect/plugin-libvisual.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-playback.xml:
* docs/plugins/inspect/plugin-queue2.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-uridecodebin.xml:
* docs/plugins/inspect/plugin-video4linux.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
* ext/alsa/gstalsamixer.c:
* ext/alsa/gstalsasink.c:
* ext/alsa/gstalsasrc.c:
* ext/gio/gstgiosink.c:
* ext/gio/gstgiosrc.c:
* ext/gio/gstgiostreamsink.c:
* ext/gio/gstgiostreamsrc.c:
* ext/gnomevfs/gstgnomevfssink.c:
* ext/gnomevfs/gstgnomevfssrc.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggmux.c:
* ext/pango/gstclockoverlay.c:
* ext/pango/gsttextoverlay.c:
* ext/pango/gsttextrender.c:
* ext/pango/gsttimeoverlay.c:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/theora/theoraparse.c:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisenc.c:
* ext/vorbis/vorbisparse.c:
* ext/vorbis/vorbistag.c:
* gst/adder/gstadder.c:
* gst/audioconvert/gstaudioconvert.c:
* gst/audioresample/gstaudioresample.c:
* gst/audiotestsrc/gstaudiotestsrc.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/gdp/gstgdpdepay.c:
* gst/gdp/gstgdppay.c:
* gst/playback/gstdecodebin2.c:
* gst/playback/gstplaybin.c:
* gst/playback/gstplaybin2.c:
* gst/playback/gstqueue2.c:
* gst/playback/gsturidecodebin.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gsttcpserversink.c:
* gst/videorate/gstvideorate.c:
* gst/videoscale/gstvideoscale.c:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/volume/gstvolume.c:
* sys/ximage/ximagesink.c:
* sys/xvimage/xvimagesink.c:
Cleanup Plugin docs. Link to signals and properties. Fix sub-section
titles. Drop mentining that all our example pipelines are "simple"
pipelines.
2008-07-10 21:06:06 +00:00