Commit graph

1643 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
Vincent Penquerc'h 270bac8158 timeoverlay: add missing break
https://bugzilla.gnome.org/show_bug.cgi?id=637377
2010-12-16 11:41:02 +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 a4aacb9d2c oggdemux: plug some oggstream leaks 2010-12-03 13:54:01 +01:00
Mark Nauwelaerts 515f33bd3b oggstream: streamline tag extraction and prevent some leaks 2010-12-03 13:53:59 +01:00
Mark Nauwelaerts 63ba9eafb1 oggdemux: send stream tags after newsegment and global tags 2010-12-03 13:53:56 +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
Sebastian Dröge 1abb8257a0 gnomevfssrc: Remove dead assignment 2010-12-02 19:04:29 +01:00
Wim Taymans e0d683f3ed oggdemux: fix wrong flowreturn handling
Oggdemux will currently try to pad alloc a buffer from the peer when it is
reading the header files. This is a relic from the time where we had an internal
parser and needs to be removed at some point in time.

The problem is that when there is no peer pad yet (which is normal when
collecting headers) we should still continue to parse all the packets of a
page instead of erroring out on NOT_LINKED.

Fixes #632167
2010-10-29 11:48:18 +01:00
Wim Taymans 6c14f6c970 ogg: add some more debug statements 2010-10-29 11:47:53 +01:00
Stefan Kost 83c14483ed various: add a missing G_PARAM_STATIC_STRINGS flag to object properties 2010-10-13 16:13:31 +03:00
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
Tim-Philipp Müller a044b62cf5 theoradec: expose telemetry properties only if libtheora was compiled with --enable-telemetry
Since this is just a debugging feature and libtheora will usually not be
compiled with that option enabled, we should maybe just hide these properties,
since they won't work anyway, and avoid confusing warnings.

Also rename properties to make them less cryptic.

https://bugzilla.gnome.org/show_bug.cgi?id=628488
2010-10-10 18:20:46 +01:00
Alexey Fisher ab52e15e3d theoradec: add properties to enable debugging telemetry overlay
The theora decoder can overlay debugging information on the output
video. This functionality is only available if libtheora has been
compiled with --enable-telemetry. For more details see:

http://people.xiph.org/~xiphmont/demo/theora/demo2.html

Based on original patch by Michael Smith <msmith at xiph org>

https://bugzilla.gnome.org/show_bug.cgi?id=628488
2010-10-10 18:20:46 +01: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
Mark Nauwelaerts 53b0c20c7c vorbisdec: reverse playback; decode pending buffers upon EOS 2010-10-06 12:05:27 +02:00
Wim Taymans 7fe3657d86 libvisual: only drop frames that are really too old
Also take the frame duration into account so that we don't drop frames that are
partially past the estimated QoS time.
2010-10-05 12:22:39 +02:00
Wim Taymans cc470dfb68 libvisual: add latency query
Add our own latency to the latency query reply from upstream.
2010-10-05 12:22:39 +02:00
Wim Taymans 0e395146c3 libvisual: add some defines
Add some defines for width/height/fps and a define for the minimum amount of
samples we need to buffer.
2010-10-05 12:22:39 +02:00
Wim Taymans 88cf7a2156 parse: Don't error on discont
We don't need to error out when we detect a discontinuity.
2010-10-04 17:27:00 +02:00
Wim Taymans 3d26fc3d8f theoraparse: set caps on streamheader too 2010-10-04 17:09:39 +02:00
David Schleef 71f89ac092 theoraenc: ptalarbvorm speed level goes to 3 2010-09-24 21:30:44 -07:00
Olivier Crête 91f89f490c theoraenc: Make the bitrate/quality dynamically modifiable
https://bugzilla.gnome.org/show_bug.cgi?id=630303
2010-09-22 11:41:13 -04:00
Tristan Matthews a351bf0702 gnomevfsrc: set GST_PARAM_MUTABLE_READY flag on the "handle" property
Fixes #629672
2010-09-15 17:07:16 +03:00
Sebastian Dröge ca24ece36b textoverlay: Add support for AYUV 2010-09-01 17:52:31 +02:00
Rob Clark 54f4aa28c2 textoverlay: fix Cb/Cr inversion for colored text overlays
In case of odd values for xpos or ypos, the division by two in CbCr
plane would result in an off-by-one error, which in the case of NV12,
NV21, or UYVY would cause inversion of blue and red colors.  (And
would be not so easily noticed for I420 as it would just cause the
chroma to be offset slightly from the luma.)

This patch also fixes a silly typo from the earlier patch which
added NV12 support that broke UYVY support.
2010-08-30 22:53:26 +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 faebf174fb textoverlay: Support NV21 too and minor cleanups 2010-08-24 10:12:53 +02:00
Chris Shoemaker 6bd90dc0cc clockoverlay: only rerender text if time string has changed
The textoverlay element will rerender the text string whenever
overlay sets the 'need_render' flag to TRUE.  Previously, we
lazily set the flag to TRUE every time the time string was requested.
Now, we save a copy of the previously given string, and only set
'need_render' to TRUE if the string has changed.

In my tests with a 30fps video stream, and a time string including
a seconds field, this change reduced the CPU usage of the clockoverlay
element from 60% to 5%.

Fixes bug #627780.
2010-08-24 09:29:33 +02:00
Rob Clark 1b6918709c textoverlay: add NV12 support
Fixes bug #627768.
2010-08-24 09:25:55 +02:00
Wim Taymans 7b310c6a03 alsasrc/sink: add property to get the card name
fixes #627203
2010-08-18 16:45:37 +02:00
Wim Taymans 693919ff87 alsa: add method to retrieve the card name
Reuse an existing method to retrieve the card name.
2010-08-18 16:42:13 +02:00
Stefan Kost 0fee4ed3d0 alsa: remove 'dir' out variable
Alsa seems to expect that we initialize it. Remove the variable and pass NULL
as we actually don't use it. In alsasink also #ifdef one section that is
grabing diagnostics to be disabled, when logging is disabled (the code was
using the out parameter as well).

Fixes #626125
2010-08-12 15:41:59 +03:00
Mark Nauwelaerts 90a79b4c60 textoverlay: configurable text color and position
Rather than only left, right, top, etc, allow for horizontal and vertical
positioning on a scale from 0 to 1.
Also cater for configuring rendered text color.

Fixes #624920.

API: GstTextOverlay:xpos
API: GstTextOverlay:ypos
API: GstTextOverlay:color
2010-08-09 09:49:12 +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
Sebastian Dröge c95d0034af theoraenc: Implement two pass encoding
Fixes bug #621349.
2010-07-16 17:40:12 +02:00
Sebastian Dröge 5318e71b4d configure: Require libtheora >= 1.1
It's more than a year old at the time of the next -base release,
has many encoder and decoder improvements and gets us rid of a lot
of #ifdefs
2010-07-16 17:39:22 +02:00
Sebastian Dröge ecea88e0d2 theora: Use PROP_ instead of ARG_ for property enum values 2010-07-16 17:39:22 +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
Sebastian Dröge 9c570dbced gnomevfssrc: Fix possible NULL pointer dereference
It's always an error if gst_buffer_try_new_and_alloc() returns NULL
2010-06-14 11:08:10 +02:00
Sebastian Dröge a34fe5df35 giostreamsrc: Fix copy&paste error in the docs 2010-06-14 09:53:31 +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
Tim-Philipp Müller dab38bb8a0 cdparanoia: check for cdparanoia with pkg-config first
cdparanoia now has a .pc file in post-0.10.2 SVN, so use
that to check for cdparanoia before we try all the other
checks. Besides being generally nicer, this may help with
correctly detecting cdparanoia on OSX some day (see #609918).
2010-06-11 22:16:26 +01: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
Jonathan Matthew c5c1b6815a gio: map GIO NO_SPACE error to NO_SPACE_LEFT
Fixes bug #620140.
2010-05-31 15:57:28 +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
Stefan Kost 2e3cfe4546 libvisual: trucate own caps, instead of copying and using the first only
We got the caps from an intersect, it is our own, hence we can truncate it.
2010-05-06 09:11:17 +03:00
Stefan Kost 4e6cb3e91f vorbis: have a copy_sample func as a func pointer
Make some more variants for copy_sample funcs and use them via function pointer.
2010-05-06 08:22:36 +03: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
Tim-Philipp Müller 63931dc80b Bump GLib requirement to 2.20
See http://gstreamer.freedesktop.org/wiki/ReleasePlanning/GLibRequirement
2010-04-30 14:08:50 +01: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
Edward Hervey e528e73268 ext: Invert rank of gio and gnomevfs elements 2010-04-08 12:21:50 +02:00
Tim-Philipp Müller 930f72c6b0 alsa: don't pass non-constant strings as printf format strings
Fixes 'format not a string literal and no format arguments' compiler
warning when compiling with -DGST_DISABLE_PRINTF_EXTENSION.
2010-04-08 01:26:55 +01:00
Sebastian Dröge 44e474f76d alsa: Ignore errors when unpreparing or closing the device
Errors could happen here when the device was removed already
or when something is broken anyway. If errors happen here and
they're propagated, the element can't shutdown cleanly.

Fixes bug #614545.
2010-04-04 21:18:04 +02:00