Commit graph

1288 commits

Author SHA1 Message Date
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
Sebastian Dröge
1d4ba53259 textrender: Correctly initialize the background for ARGB too 2009-05-12 09:03:24 +02:00
Sebastian Dröge
204c327b23 textrender: Use libgstvideo functions to create caps
Also check if downstream wants ARGB always when we get
new caps.
2009-05-12 09:03:23 +02:00
Sebastian Dröge
4f5502a896 textrender: Don't always use ARGB if downstream supports it but take it's preference 2009-05-12 09:03:23 +02:00
Kapil Agrawal
2ddf7c8e13 textrender: Add support for ARGB and alignment properties
Fixes bug #581571.
2009-05-12 09:03:23 +02:00
Sebastian Dröge
ce95857718 textrender: Add ; after GST_BOILERPLATE to fix indention 2009-05-12 09:03:23 +02:00
Michael Smith
21c52af2b3 theoradec: fix buffer overrun on 422 decode. 2009-05-10 18:08:13 -07:00
Michael Smith
c94a36bff4 theoradec: 444 support. 2009-05-10 18:08:13 -07:00
Michael Smith
62b571b93b theoradec: handle 422 images (as YUY2). 2009-05-10 18:08:13 -07:00
Michael Smith
a91b7f0857 theoradec: rearrange code in preparation for 422 and 444 support. 2009-05-10 18:08:12 -07:00
Zaheer Merali
1650272b84 vorbisenc, theoraenc: Ensure gp is computed consistently + clip to segment
With vorbisenc, compute the granulepos with running time and clip incoming
buffers to segment.
With theoraenc, drop out of segment buffers.
2009-05-06 13:19:34 +01:00
Jan Schmidt
d14c80b22e vorbisenc: Ensure output buffers fall within the segment
Add the start position of the first segment to the running time
used to generate buffer timestamps in vorbisenc. This avoids generating
buffers which fall outside the initial segment. The element segment
handling requires more extensive fixing, but this at least prevents
regressions. Fixes: #580020
2009-04-29 16:48:45 +01:00
Olivier Crete
c628641880 theoraenc: implement upstream keyframe force
Implement handling of upstream keyframe forcing.
Update the design documents too.
Fixes #578656
2009-04-14 18:21:45 +02:00
Olivier Crete
d0c3682627 theoraenc: factor out keyframe forcing
See #578656
2009-04-14 18:21:45 +02:00
Edward Hervey
219fe22293 theoradec: return GST_CLOCK_TIME_NONE for negative framecounts.
This fixes most seeking issues when used with gnonlin.
Fixes #543591
2009-04-04 15:47:17 +02:00
Tim-Philipp Müller
9938003bd1 alsamixer: don't forget to release locks in a few places
Might fix #576585.
2009-04-02 10:44:25 +01:00
Sebastian Dröge
f1bc9e97aa textoverlay: Fix drawing of UYVY text borders 2009-03-26 11:02:41 +01:00
Zeeshan Ali
e54e10ad19 textoverlay: Add support for UYVY colorspace
Fixes bug #378094.
2009-03-26 10:36:27 +01:00
Edward Hervey
b7fdb7c6d7 theoradec: Use GST_CLOCK_TIME_NONE for invalid positions. Fixes #543591
The problem was that previously we didn't check whether _theora_granule_frame
returned a negative framecount or not, resulting in bogus timestamps.
2009-03-23 11:38:53 +01:00
René Stadler
9f0e053f6e vorbisenc: Set caps on non-header ouput buffers.
Fixes #576142.
2009-03-21 09:47:23 +01: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
e863e4ed1b vorbisparse: be smarter when queueing headers
Look at the first buffer byte to see if a buffer is a header instead of counting
packets.
2009-03-13 15:29:29 +01:00
Wim Taymans
9def0d8c61 theoraparse: be smarter when queuing headers
Look at the first byte of the buffer data (if we can) to decide if the packet is
a header packet or not instead of counting packets.
2009-03-13 15:27:51 +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
Jan Schmidt
77874292a3 vorbisdec: Avoid an unnecessary memory allocation in vorbiscomment handling. 2009-03-13 11:49:10 +00:00
Jan Schmidt
e7d4250fc3 theoradec: Avoid an unnecessary memory allocation in vorbiscomment handling. 2009-03-13 11:48:28 +00:00
Wim Taymans
fac1d4cc09 theoradec: parse and use codec_data in the caps
Parse the codec_data in the caps and use this as the headers.
Fixes #574169.
2009-03-06 19:02:58 +01:00
LRN
95c838f051 gio: Use correct format modifier for size_t
Fixes bug #573528.
2009-02-28 19:37:53 +01:00
Stefan Kost
3d0c70d3d8 alsa: release pcminfo after the strdup 2009-02-27 11:14:25 +02:00
Stefan Kost
c074e84360 alsa: cleanup name lookup.
We can break, once we have a name to make sure, we won't read it ever twice.
2009-02-26 18:01:05 +02:00
Stefan Kost
e95bbca65f giosink: reflow error handling to not leak uri 2009-02-26 18:01:04 +02:00
Sebastian Dröge
dc9a1b945b vorbis: Rename vorbis*.h to gstvorbis*.h to prevent name conflicts 2009-02-24 14:36:39 +01:00
Sebastian Dröge
2ab2bbd82c theoraparse: Use the correct unref functions 2009-02-22 19:19:04 +01:00
Benjamin M. Schwartz
d8a33f094c theoraenc: Add property for speed level control
Add property "speed-level" to control the amount of motion searching
the encoder does.  This is only available in libtheora >= 1.0 and
will silently fail with earlier libraries.  Fixes: #572275.

Signed-off-by: David Schleef <ds@schleef.org>
2009-02-19 12:38:57 -08:00
Antoine Tremblay
fc23037a9a alsamixer: Fix race condition that made alsamixer not working properly
This is due to race conditions between functions that
modified the mixer like set_volume and
snd_mixer_handle_events since the handle_events
can now be called at any time.

Fixed by adding locking around any snd_mixer call
since even read functions can modify the mixer stucture, since
alsa likes to clear it's values before reading new ones.

The favorite race condition seemed to be that set_volume
called read_elem (in alsalib) that reset the volumes to
0 and then read them with read_x_volume. This read looped
on each channel and as the race condition occured the
channels value could be anything , most of the time
it was 0. Thus no value was read or only the value of
one channel was and the volume was reset to 0.

Fixes bug #478512.
2009-02-10 11:00:12 +01:00
Jan Schmidt
9fbf201167 Fix include order for gio plugin 2009-01-26 23:32:09 +00:00
Wim Taymans
64b20fd7b5 Use rounded values for image strides and sizes
Round up the height before calculating the expected size and
strides of the output image.
2009-01-23 11:27:16 +01:00
Wim Taymans
eb33188fba Improve debug message
Improve the debug message when alsa returns an error.
2009-01-23 11:23:09 +01:00
Sebastian Dröge
b6b860f9a4 Add plugin dependency for the GIO and GVfs modules.
Original commit message from CVS:
* configure.ac:
* ext/gio/gstgio.c: (plugin_init):
Add plugin dependency for the GIO and GVfs modules.
Fixes bug #566876.
2009-01-07 18:36:04 +00:00
Sebastian Dröge
54910e9253 Add plugin dependency for the gnomevfs modules.
Original commit message from CVS:
* configure.ac:
* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
Add plugin dependency for the gnomevfs modules.
Fixes bug #566875.
2009-01-07 18:32:33 +00:00
Tim-Philipp Müller
be87292514 Use new core API to make registry re-scan the plugin whenever visualisations are added or removed (see #350477).
Original commit message from CVS:
* configure.ac:
* ext/libvisual/visual.c: (plugin_init):
Use new core API to make registry re-scan the plugin
whenever visualisations are added or removed (see #350477).
2009-01-06 18:03:51 +00:00
Sebastian Dröge
7e58fe30f5 ext/: Implement URI query. Fixes bug #562949.
Original commit message from CVS:
* ext/gio/gstgiobasesink.c: (gst_gio_base_sink_query):
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_class_init),
(gst_gio_base_src_query):
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_query):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init),
(gst_gnome_vfs_src_query):
Implement URI query. Fixes bug #562949.
2008-12-20 17:38:41 +00:00
Edward Hervey
a3c1a0507a ext/vorbis/vorbisenc.c: Make vorbisenc's pad template behave like vorbisdec's. Fixes a leak with pad templates.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_base_init),
(gst_vorbis_enc_init):
Make vorbisenc's pad template behave like vorbisdec's. Fixes a leak with
pad templates.
2008-12-12 07:17:21 +00: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
Wim Taymans
f93fcafe64 ext/theora/: Parse segment events.
Original commit message from CVS:
* ext/theora/gsttheoraenc.h:
* ext/theora/theoraenc.c: (gst_theora_enc_init),
(theora_buffer_from_packet), (theora_push_packet),
(theora_enc_sink_event), (theora_enc_is_discontinuous),
(theora_enc_chain):
Parse segment events.
Pass incomming buffer timestamps to outgoing buffers.
Use the running_time to construct the granulepos.
Fixes #562163.
2008-11-25 15:14:30 +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
Sebastian Dröge
79bb2ffe06 ext/: Use gst_buffer_try_new_and_alloc() and fail properly if the allocation failed. This prevents abort() if downstr...
Original commit message from CVS:
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_create):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_create):
Use gst_buffer_try_new_and_alloc() and fail properly if the
allocation failed. This prevents abort() if downstream elements
request an insane amount of memory.
2008-11-24 12:07:10 +00:00