Sebastian Dröge
948a4a3632
gst: Add better support for static plugins
2013-04-15 15:52:58 +02:00
yanghuolin
67a7b5a993
alsasink: don't use 100% CPU
...
The root cause is that alsa-lib is not thread safe for the same handle.
There are two threads in the gstreamer accessing alsa-lib not serilized.
The race condition happens when one thread holds the old framebuffer app_ptr
position in the kernel, another thread advances the framebuffer app_ptr.
when the former thread is scheduled to run again, it overwrites the app_ptr
to old value by copying from kernel.Thus,the app_ptr in the upper
alsa-lib(pcm_rate) become one period size more advanced than the lower
alsa-lib(pcm_hw & kernel).
gstreamer uses noblock and poll method to communicate with the alsa-lib.
The app_ptr unsync situation as described above makes the poll return immediately because
it concludes there is enough space for the ring-buffer via the low-level alsa-lib.
The write function returns immediately because it concludes there is not enough
space for the ring-buffer from the upper-level alsa-lib. Then the loop of poll
and write runs again and again until another period size is available for
ring-buffer.This leads to the cpu 100 problem.
delay_lock is used to avoid the race condition.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=690937
2013-01-24 15:08:31 +01:00
Tim-Philipp Müller
df6031f7c6
alsasrc: return negative value on read error
...
Otherwise baseaudiosrc won't go into the error code path.
https://bugzilla.gnome.org/show_bug.cgi?id=690197
2012-12-17 20:50:33 +00:00
Tim-Philipp Müller
3d5a78e67a
alsa: post error message when audio device disappears
...
Don't loop forever if an USB audio device gets disconnected
while in use. Post an error message instead. This is not
enough yet though, we still need to make the base class
and/or the ring buffer bail out.
https://bugzilla.gnome.org/show_bug.cgi?id=690197
2012-12-16 01:00:43 +00:00
Sebastian Dröge
d9b25afe71
ext: Fix some compilation errors caused by circular header includes
2012-12-12 17:22:31 +00:00
Tim-Philipp Müller
5f59b4f7ee
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Sebastian Dröge
3c1041d5eb
Revert "gst: Add better support for static plugins"
...
This reverts commit d2d79e3bc2
,
which was accidentially pushed.
2012-10-24 13:26:26 +02:00
Sebastian Dröge
d2d79e3bc2
gst: Add better support for static plugins
2012-10-24 12:10:44 +02:00
Tim-Philipp Müller
ccbb233da8
alsasink: fix caps leak in acceptcaps function
...
https://bugzilla.gnome.org/show_bug.cgi?id=681192
2012-10-20 11:38:55 +01:00
Tim-Philipp Müller
1a69ec3fd3
alsa: if no formats in native endianness could be detected, try non-native endianness as well
...
This can happen, e.g. when using an USB sound card on
a big-endian device
https://bugzilla.gnome.org/show_bug.cgi?id=680904
2012-10-18 11:04:06 +01:00
Tim-Philipp Müller
1e329bb4f4
alsa: fix supported format detection
...
The format probing code was assuming there'd be one caps
structure for each separate width/depth combination like
we did in 0.10 all over the place: for one, we'd query
unsigned/signed formats together for the same width/height,
and we'd add the entire current structure to the probed
caps when we find a format is supported. Now that we have
all raw formats in a single structure, this is all not going
to work so well any more. We added the entire structure with
all possible formats to the caps if we support just one format.
Fix probing so that we only return the list of actually
supported raw audio formats (with native endianness) from
get_caps().
2012-10-18 11:03:07 +01:00
Arun Raghavan
9f9718715a
audio: Explicitly specify endianness for IEC 61937 payloading
...
This is required since some systems (DirectSound and OS X) manage the
final byte order themselves.
https://bugzilla.gnome.org/show_bug.cgi?id=678021
2012-09-19 09:15:16 +05:30
Pontus Oldberg
a2f8ec4f5a
ringbuffer: add support for timestamps
...
Make it possible for subclasses to provide the timestamp (as an absolute time
against the pipeline clock) of the last read data.
Fix up alsa to provide the timestamp received from alsa. Because the alsa
timestamps are in monotonic time, we can only do this when the monotonic clock
has been selected as the pipeline clock.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=635256
2012-09-10 11:34:14 +02:00
Tim-Philipp Müller
794af4fc51
alsa: port to new GLib thread API
2012-09-10 01:06:51 +01:00
Tim-Philipp Müller
2079a8c12b
Remove glib-compat-private.h stuff we don't need any more
...
It's all been ported to the latest GLib API now.
2012-09-09 18:36:49 +01:00
Tim-Philipp Müller
fc37cf5779
Silence some 'variable may be used uninitialized' compiler warnings
...
when compiling with -DG_DISABLE_ASSERT
2012-08-08 10:19:20 +01:00
Andoni Morales Alastruey
2434f2932b
alsasink: check for spdif support only in the current device
2012-05-18 12:01:06 +02:00
Mark Nauwelaerts
1c70c5b85e
alsasink: really use local ringbuffer spec helper var and init it a bit more
...
... to avoid assertion failures
Conflicts:
ext/alsa/gstalsasink.c
2012-05-09 10:28:16 +02:00
Andoni Morales Alastruey
c6409806c1
alsasink: use the iec958 payloader to support non-payloaded input streams
2012-05-07 13:31:01 +02:00
Sebastian Dröge
69b18ab09d
gst-libs: Remove interfaces libs and mixer/tuner interfaces
...
The navigation interface is now in the video library.
2012-04-13 13:14:13 +02:00
Tim-Philipp Müller
3c6a3ad629
Use new gst_element_class_set_static_metadata()
2012-04-10 00:45:16 +01:00
Sebastian Dröge
ad42b16375
gst: Update for GST_PLUGIN_DEFINE() API change
2012-04-05 15:11:05 +02:00
Sebastian Dröge
65307dd132
gst: Update versioning
2012-04-04 14:55:15 +02:00
Wim Taymans
6e054dfc3d
alsa: fix small caps leak
2012-03-27 15:43:44 +02:00
Wim Taymans
25137962ad
fix for caps API changes
2012-03-11 19:04:41 +01:00
Sebastian Dröge
1cbcb9281c
mixer/colorbalance: Update for API changes
2012-03-02 10:00:59 +01:00
Sebastian Dröge
f7939bb43f
Merge branch 'master' into 0.11
...
Conflicts:
NEWS
RELEASE
configure.ac
docs/plugins/gst-plugins-base-plugins.args
docs/plugins/gst-plugins-base-plugins.hierarchy
docs/plugins/gst-plugins-base-plugins.interfaces
docs/plugins/inspect/plugin-adder.xml
docs/plugins/inspect/plugin-alsa.xml
docs/plugins/inspect/plugin-app.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-encoding.xml
docs/plugins/inspect/plugin-ffmpegcolorspace.xml
docs/plugins/inspect/plugin-gdp.xml
docs/plugins/inspect/plugin-gio.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-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-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
gst-libs/gst/app/gstappsink.c
gst-libs/gst/audio/mixer.c
gst-libs/gst/audio/mixer.h
gst-libs/gst/tag/gstxmptag.c
gst-libs/gst/video/colorbalance.c
gst-libs/gst/video/colorbalance.h
gst/adder/gstadder.c
gst/playback/gstplaybasebin.c
gst/playback/gstplaybin2.c
gst/playback/gstplaysink.c
gst/videoscale/gstvideoscale.c
tests/check/elements/videoscale.c
tests/examples/seek/seek.c
tests/examples/v4l/probe.c
win32/common/_stdint.h
win32/common/audio-enumtypes.c
win32/common/config.h
2012-03-02 10:00:55 +01:00
Edward Hervey
59918e841f
Suppress deprecation warnings in selected files, for g_value_array_* mostly
2012-02-27 14:28:15 +01:00
Wim Taymans
61a53092e4
alsa: merge instead of appending structures
2012-01-26 14:28:06 +01:00
Sebastian Dröge
68c0790817
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/interfaces/propertyprobe.c
sys/xvimage/xvimagesink.c
2012-01-25 11:50:54 +01:00
Tim-Philipp Müller
5487cb98ef
Replace deprecated GStaticMutex with GMutex
2012-01-22 22:52:28 +00:00
Wim Taymans
3d42f0f6ed
port to new glib thread API
2012-01-19 11:36:17 +01:00
Tim-Philipp Müller
576bbb4fd8
Remove compatibility code cruft for old GLib versions
2012-01-18 17:22:21 +00:00
Vincent Penquerc'h
8d29fe8834
alsasink: fix high sample rates being rejected
...
An ALSA sink may select a different rate (as we use the _set_rate_near
API, which is not guaranteed to set the exact target rate).
The rest of the code seems to already handle this well, as output
from a 88200 Hz file seems to have the correct pitch when selecting
a 96 kHz rate.
2012-01-16 11:46:05 +00:00
Vincent Penquerc'h
361f2b169c
alsasink: fix rate match message mistaking error code for sample rate
2012-01-16 11:46:05 +00:00
Vincent Penquerc'h
e60027c795
alsasink: log API errors along with the error code and string
2012-01-16 11:46:05 +00:00
Sebastian Dröge
75f91ebea0
ext: Add new layout field to the raw audio caps
2012-01-05 10:34:25 +01:00
Sebastian Dröge
2fc75efdce
alsa: Port to the new multichannel caps
2012-01-05 10:34:20 +01:00
Tim-Philipp Müller
3dfdd6be9d
audioringbuffer: rename GST_BUFTYPE_* to GST_AUDIO_RING_BUFFER_FORMAT_TYPE_*
...
Bit unwieldy, but more appropriate. Could also be moved into
audio.h as GstAudioFormatType.
2011-12-25 21:38:21 +00:00
Tim-Philipp Müller
cab6432c68
alsasink: make work for raw audio formats by fixing template caps
2011-12-23 00:54:43 +00:00
Wim Taymans
dde5e5a248
alsa: remove more property probe stuff
2011-12-22 16:37:29 +01:00
Wim Taymans
ddc05e0ed1
propertyprobe: remove propertyprobe
...
Remove the propertyprobe interface
Improve docs
2011-12-21 11:58:53 +01:00
Tim-Philipp Müller
fb6d09055a
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/alsa/gstalsadeviceprobe.c
ext/alsa/gstalsamixer.c
ext/pango/gsttextoverlay.c
ext/pango/gsttextoverlay.h
gst-libs/gst/audio/gstaudiobasesink.c
gst-libs/gst/audio/gstaudioringbuffer.c
gst-libs/gst/audio/gstaudiosrc.c
gst-libs/gst/video/Makefile.am
gst-libs/gst/video/video.c
gst/encoding/gststreamcombiner.c
gst/encoding/gststreamsplitter.c
gst/playback/gstplaybasebin.c
gst/playback/gststreamsynchronizer.c
gst/playback/gstsubtitleoverlay.c
gst/playback/gsturidecodebin.c
sys/xvimage/xvimagesink.c
tests/examples/Makefile.am
win32/common/libgstvideo.def
Video overlay composition disabled for now, needs
porting to buffer meta.
2011-12-08 01:19:03 +00:00
Tim-Philipp Müller
5440ae3c18
Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
...
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-04 20:50:25 +00:00
Tim-Philipp Müller
4828234639
alsamixer: use GRectMutext instead of GStaticRecMutex with newer glib versions
2011-12-04 20:38:19 +00:00
Tim-Philipp Müller
9c307bccc5
alsamixer: embed static mutexes into the mixer structure
...
instead of allocating them dynamically
2011-12-04 20:21:26 +00:00
Tim-Philipp Müller
0d98aa25b8
Work around deprecated thread API in glib master
...
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We'll change these
over to the new API once we depend on glib >= 2.32.
Replace g_thread_create() with g_thread_try_new().
2011-12-04 17:16:30 +00:00
Tim-Philipp Müller
177525f89f
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst-libs/gst/netbuffer/gstnetbuffer.c
gst/ffmpegcolorspace/avcodec.h
gst/ffmpegcolorspace/gstffmpegcodecmap.c
gst/ffmpegcolorspace/imgconvert.c
gst/ffmpegcolorspace/imgconvert_template.h
gst/ffmpegcolorspace/mem.c
gst/playback/README
gst/playback/gstplaybasebin.c
gst/playback/gstplaybasebin.h
gst/playback/gstplaybin.c
sys/v4l/v4lmjpegsrc_calls.c
sys/v4l/videodev_mjpeg.h
tests/check/elements/gnomevfssink.c
2011-12-02 11:10:17 +00:00
Piotr Fusik
14644457b0
various: typo fixes
...
Fix typos in code and docs. Fixes. #658984
2011-12-02 12:03:27 +01:00
Tim-Philipp Müller
ec0d3566bf
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/alsa/gstalsasrc.c
ext/alsa/gstalsasrc.h
gst/adder/gstadder.c
gst/playback/gstplaybin2.c
gst/playback/gstplaysinkconvertbin.c
win32/common/libgstvideo.def
2011-12-02 00:07:39 +00:00
Tim-Philipp Müller
e88e47cd24
Revert "alsasrc: Improve timestamp accuracy"
...
This reverts commit 0b774e0b7c
.
2011-11-30 23:15:35 +00:00
Tim-Philipp Müller
e5ae553850
Revert "alsasrc: Fix some compilation errors"
...
This reverts commit 2b84f5bd74
.
2011-11-30 23:15:22 +00:00
Tim-Philipp Müller
4cc8920db4
Revert "alsa: Remove unused but set variable"
...
This reverts commit e9aed7f31c
.
2011-11-30 23:15:12 +00:00
Tim-Philipp Müller
1290f7de0e
Revert "alsasrc: fail gracefully when ALSA does not give timestamps"
...
This reverts commit c7282a5718
.
2011-11-30 23:15:03 +00:00
Tim-Philipp Müller
d11849114c
Revert "alsasrc: handle the case where the drivers don't supply timestamps"
...
This reverts commit 8154b69112
.
2011-11-30 23:14:54 +00:00
Stefan Sauer
6d167abdfa
Revert "alsasrc: style fix"
...
This reverts commit f70ca6d4cb
.
2011-11-30 23:14:44 +00:00
Wim Taymans
47cbb230e9
audio: move audio interfaces
...
Move the audio related interfaces to the audio library.
2011-11-30 07:57:02 +01:00
Tim-Philipp Müller
0c056a04fe
Merge commit '4a58223e4c824fedc024af435337a769e8ce593e' into 0.11
2011-11-28 21:20:10 +00:00
Vincent Penquerc'h
96374054ac
various: fix pad template leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:09:02 +00:00
Stefan Sauer
f70ca6d4cb
alsasrc: style fix
...
Use timestamp==0 instead of mixing it with !timestamp style checks.
2011-11-28 10:55:39 +01:00
Stefan Sauer
8154b69112
alsasrc: handle the case where the drivers don't supply timestamps
...
If highres-timestamp is 0, try lowres and if that fails fallback to system clock
timestamps.
2011-11-28 09:13:29 +01:00
Wim Taymans
ee7072fe7e
rename GstBaseAudio* ->GstAudioBase*
2011-11-11 11:52:47 +01:00
Wim Taymans
6511f36fdb
audio: GstRingBuffer -> GstAudioRingBuffer
2011-11-11 11:21:41 +01:00
Wim Taymans
3254e79f04
alsa: fix negotiation
...
Don't assume the format is a string because now it is a list of string in the
template.
Chain up to the parent class implementation of get_caps.
2011-11-10 16:05:19 +01:00
Wim Taymans
7cd83031a1
alsa: update for new task api
2011-11-02 09:04:27 +01:00
Wim Taymans
06311362e9
fix compilation
2011-10-27 17:26:58 +02:00
Stefan Sauer
53d7d2e966
interfaces: clean up the use of iface and class/klass
2011-10-21 14:46:48 +02:00
Wim Taymans
a00927ad03
Merge branch 'master' into 0.11
2011-10-04 17:58:49 +02:00
Vincent Penquerc'h
c7282a5718
alsasrc: fail gracefully when ALSA does not give timestamps
...
https://bugzilla.gnome.org/show_bug.cgi?id=660170
2011-10-03 11:14:09 +02:00
Wim Taymans
33196cdd2c
audio: change audio format syntax a little
...
Remove the _ in front of the endianness prefix.
Remove the _3 postfix for the 24 bits formats.
Add a _32 postfix after the formats that occupy extra space beyond their
natural size.
The result is that the GST_AUDIO_NE() macro can simply append the endianness
after all formats and that we only specify a different sample width when it is
different from the natural size of the sample. This makes things more consistent
and follows the pulseaudio conventions instead of the alsa ones.
2011-09-06 12:06:39 +02:00
Wim Taymans
8023f49d19
more audio caps porting
2011-08-19 17:41:22 +02:00
Wim Taymans
dae848818d
audio: rework audio caps.
...
Rework the audio caps similar to the video caps. Remove
width/depth/endianness/signed fields and replace with a simple string
format and media type audio/x-raw.
Create a GstAudioInfo and some helper methods to parse caps.
Remove duplicate code from the ringbuffer and replace with audio info.
Use AudioInfo in the base audio filter class.
Port elements to new API.
2011-08-18 19:15:03 +02:00
Tim-Philipp Müller
c16e7321b9
alsa: don't use GstImplementsInterface
2011-06-26 22:58:17 +01:00
Wim Taymans
2e837743c3
audio: clean up audiosink headers
2011-06-21 18:13:48 +02:00
Wim Taymans
489eed9bb8
Merge branch 'master' into 0.11
2011-05-19 11:31:53 +02:00
Robert Swain
e9aed7f31c
alsa: Remove unused but set variable
...
Unused but set variables cause warnings in GCC 4.6.x and newer.
2011-05-18 09:34:52 +02:00
Sebastian Dröge
c255019b90
ext: Update for caps/pad template related API changes
2011-05-17 13:06:01 +02:00
Sebastian Dröge
d0362c2b87
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
ext/alsa/gstalsasrc.c
gst-libs/gst/audio/gstbaseaudiosink.c
gst-libs/gst/tag/gstxmptag.c
gst/playback/gstsubtitleoverlay.c
gst/videorate/gstvideorate.c
sys/xvimage/xvimagesink.c
2011-05-16 17:06:22 +02:00
Sebastian Dröge
0415b90e99
alsa: Update for negotiation related API changes
2011-05-16 15:35:41 +02:00
Sebastian Dröge
2b84f5bd74
alsasrc: Fix some compilation errors
2011-05-14 11:42:32 +02:00
Pontus Oldberg
0b774e0b7c
alsasrc: Improve timestamp accuracy
...
Fixes bug #635256 .
2011-05-14 11:42:32 +02:00
Sebastian Dröge
353186aec8
ext: Use G_DEFINE_TYPE instead of GST_BOILERPLATE
2011-04-19 14:22:42 +02:00
Wim Taymans
e1869fa267
Merge branch 'master' into 0.11-fdo
2011-03-28 20:13:59 +02:00
Blaise Gassend
185a8ddcaa
alsamixer: Store return values of poll functions in a signed integer
...
Negative return values are used for errors and storing
them in an unsigned integer will make it impossible to
detect the errors.
Fixes bug #644845 .
2011-03-15 19:48:21 +01:00
Wim Taymans
f355419679
alsaprobe: don't abuse the object class lock
...
don't abuse the class lock but use a new static lock for protecting the probed
list of devices.
2010-12-07 11:30:55 +01: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
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
Sebastian Dröge
1e8f3f7689
alsamixer: Detect errors from device polling, stop the task and post an error message
...
Partially fixes bug #614545 .
2010-04-04 21:00:52 +02: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
Wim Taymans
1f601e12dc
alsasrc: return right number of bytes that we wrote
2010-03-08 11:25:01 +01:00
Tim-Philipp Müller
6f4c1ac583
Remove GST_DEBUG_FUNCPTR where they're pointless
...
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-28 00:59:35 +00:00
Edward Hervey
76044dce6d
ext: Remove dead assignments and resulting unused variables.
2009-08-08 15:54:41 +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
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
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