Commit graph

1385 commits

Author SHA1 Message Date
Sebastian Dröge
67954aeba3 pango: Fix endianness issues from the pangocairo switch
cairo's ARGB is in native endianness, i.e. ARGB on big endian architectures
and BGRA on little endian architectures.
2009-08-06 06:43:37 +02:00
Sebastian Dröge
18a5264c87 pango: Re-add shading support which was dropped by a previous patch 2009-08-06 06:43:37 +02:00
Sebastian Dröge
20b84cda60 pango: Check if pangocairo supports vertical rendering and fix properties 2009-08-06 06:43:37 +02:00
Sebastian Dröge
d3baacc32a textrender: Use PROP_X instead of ARG_X consistently 2009-08-06 06:43:37 +02:00
Sebastian Dröge
8aa87c9153 pango: Some minor cleanup 2009-08-06 06:43:36 +02:00
Young-Ho Cha
7608c31516 pango: Use pango-cairo instead of pango-ft2
pango-cairo will always use the native font rendering backend
of the platform and provides better results.

Fixes bug #340887.
2009-08-06 06:43:36 +02:00
Balachandran C
01e0fdd86c alsasrc: set alsasrc->handle back to NULL when closing device
Fixes crashes in gst_alsa_find_device_name() when probing or
reading the device-name property (e.g. when doing a dot-file
dump). Fixes #589797.
2009-07-27 14:18:27 +01:00
Edward Hervey
47d40c2553 vorbisdec: Check for empty tag strings. Fixes #588724 2009-07-16 14:15:19 +02: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
Sebastian Dröge
f9494bc38b gio: Also post a "not-mounted" message from giosink 2009-07-10 19:16:35 +02:00
Sebastian Dröge
d5154874cb gio: Add documentation for the new "not-mounted" and "file-exists" messages 2009-07-10 11:24:05 +02:00
Sebastian Dröge
b9c79380aa gio: Make sure that we have the correct stream position when starting 2009-07-09 13:45:13 +02:00
Sebastian Dröge
f93b9df83d gio: Make sure to flush the output stream if it shouldn't be closed
Otherwise there might still be unwritten data after the element
has stopped.
2009-07-08 17:24:19 +02:00
Sebastian Dröge
1c0123cf58 gio: Don't close the GIO streams for the giostream{src,sink} elements
This makes it possible to do something useful with the streams
after the element has stopped. Fixes bug #587896.
2009-07-08 17:19:29 +02:00
Sebastian Dröge
3116198fc3 gio: Improve the error message if a stream is already closed before usage 2009-07-08 17:02:54 +02:00
Sebastian Dröge
6025412707 gio: Post a custom file-exists message on the bus if the file already exists
An application can handle this message, remove the file in question
and restart the pipeline again without showing an error.

This fixes bug #529300.
2009-07-08 16:55:41 +02:00
Sebastian Dröge
7228ba6acd gio: Use OPEN_READ instead of NOT_FOUND if a location is not mounted 2009-07-08 16:54:56 +02:00
Sebastian Dröge
a8896413a0 gio: Use OPEN_WRITE instead of OPEN_READ as error category in giosink 2009-07-08 16:50:56 +02:00
Sebastian Dröge
ce08823dc5 gio: Post a custom "not-mounted" message on the bus
This allows applications to mount the GFile if possible and restart
the pipeline instead of simply giving an error.
2009-07-08 15:52:35 +02:00
Sebastian Dröge
7e72ceb3f2 gio: Add vfunc for requesting the stream for the sinks too 2009-07-07 20:23:23 +02:00
Sebastian Dröge
7483a4834c gio: Some more random cleanup 2009-07-07 20:21:36 +02:00
Sebastian Dröge
b81f957bfc gio: Update my mail address and copyright 2009-07-07 20:20:58 +02:00
Sebastian Dröge
160b70e841 gio: General clean up and simplification
The GInputStreams are now requested by a vfunc from
the subclasses instead of relying that the subclass
sets it until it's needed.

This might also fix bug #587896.
2009-07-07 20:18:00 +02:00
Hans-Peter Nilsson
04e23f2d6a pango: Call tzset() before localtime_r()
POSIX and your local friendly ctime(3) manual entry says that localtime_r isn't
required to set the state variables that define the current timezone.  Indeed,
glibc (at least 2.9) doesn't do this for subsequent calls.  The effect is that
if the system timezone is changed for a running program between two calls to
gst_clock_overlay_render_time, it won't be noticed.  For glibc, changing the
timezone equals /etc/localtime being modified.

Fixes bug #587676.
2009-07-05 18:01:38 +02:00
David Schleef
8937c89551 build: remove spurious schroedinger reference 2009-07-01 17:33:14 -07:00
David Schleef
530cb7268b basevideo: send basevideo back to remedial school
Move basevideo classes and schroedinger plugin to -bad.
2009-07-01 10:27:30 -07:00
Tim-Philipp Müller
b20b375180 cdparanoia: run-time license is LGPL now that we require cdparanoia 0.10.2
cdparanoia has an LGPL v2.1 license since 0.10.1 and we now require 0.10.2.
Finally fixes #531035.
2009-06-19 22:21:03 +01:00
Tim-Philipp Müller
4e1086f93b cdparanoia: try to guess a good cache size if it's set to -1
Try to guess from the paranoia-mode setting whether playback or
ripping is wanted, and use a smaller cache size if we're likely
to be doing playback, to avoid a long startup delay. Since this
was the value used in older cdparanoia versions, it should be
fine in any case. See #586331.
2009-06-19 22:21:03 +01:00
Jonathan Matthew
9daee1f4a9 cdparanoia: expose cache size setting
This setting was added in cdparanoia 10.2.  The default value is good
for audio extraction, but lower values (previous versions of cdparanoia
used 150) are better for realtime playback.

Fixes #586331.
2009-06-19 22:21:03 +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
LRN
30103e736d Added libgstbase to schro's LIBADD
Fixes #585079
2009-06-07 22:01:50 +02:00
Tim-Philipp Müller
20fb58be19 vorbisdec: don't put invalid bitrate values into the taglist
Bitrates are stored as 32-bit signed integers in the vorbis
identification headers, but seem to be read incorrectly,
namely as unsigned 32-bit integers, into the vorbis structure
members which are of type long, which makes our check for
values <= 0 fail with files that put -1 in there for unset
values.
2009-06-03 20:42:39 +01:00
Alessandro Decina
bb1561644f theoraparse: fix assertions in make_granulepos when using the new theora granulepos mapping. Fixes #583903. 2009-05-26 23:32:48 +02: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
David Schleef
27cb39b028 schro: Fix usage of adapter_masked_scan_uint32
Because *somebody* changed the API without telling me.
2009-05-22 21:27:58 -07:00
David Schleef
62002aead9 schro: Change package name to GST_PACKAGE_NAME 2009-05-22 21:25:06 -07:00
Wim Taymans
d1c73bd00f vorbisdec: detect and report errors better
Check the return values of a couple more libvorbis functions and post an error
when something is wrong instead of continuing and crashing.
2009-05-22 17:41:50 +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
Michael Smith
94ca1b005e theoradec: for 4:2:2, use Y42B (planar) rather than a packed format. 2009-05-18 22:34:22 -07:00
David Schleef
0f1c5c1b68 schro: Move schro plugin from Schroedinger
Previous history is in Schroedinger.  Depends on, and is an example
of using, GstBaseVideo* base classes.

Code was reindented, and an #ifdef HAVE_ENCODER removed.
2009-05-15 16:18:59 -07:00
Sebastian Dröge
c3b28a9bff vorbisenc: Implement Preset interface 2009-05-15 16:27:41 +02:00
Sebastian Dröge
bcd0aee3f5 theoraenc: Implement Preset interface 2009-05-15 16:27:40 +02:00
Sebastian Dröge
2ea16837e7 oggmux: Implement Preset interface 2009-05-15 16:27:40 +02:00
Wim Taymans
117686abc5 visual: remove next_ts variable
We can remove the next_ts variable as we don't use it anymore.
2009-05-13 19:27:54 +02:00
Wim Taymans
6eb549ab92 visual: use new adapter timestamp code
Use the new adapter timestamp tracking code to make things easier and produce
vastly better output timestamps.
2009-05-13 19:24:15 +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
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
Wim Taymans
68eb1421af ext/theora/: Copy seqnum.
Original commit message from CVS:
* ext/theora/gsttheoradec.h:
* ext/theora/theoradec.c: (gst_theora_dec_init),
(gst_theora_dec_reset), (theora_dec_src_event),
(theora_dec_sink_event), (theora_handle_type_packet):
Copy seqnum.
Keep events in a pending list, like vorbisdec, instead of trying
to construct a segment event ourselves.
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
(vorbis_dec_src_event), (vorbis_dec_sink_event):
* ext/vorbis/vorbisdec.h:
Copy seqnum.
2008-11-04 18:17:24 +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
Matthias Kretz
d15846f9fb ext/alsa/gstalsasink.c: Make all access non-blocking so that we can better handle unplugging of usb devices. Fixes #5...
Original commit message from CVS:
Based on patch by: Matthias Kretz <kretz at kde dot org>
* ext/alsa/gstalsasink.c: (gst_alsasink_open),
(gst_alsasink_prepare), (gst_alsasink_unprepare),
(gst_alsasink_write):
Make all access non-blocking so that we can better handle unplugging
of usb devices. Fixes #559111
2008-11-03 15:30:14 +00:00