Commit graph

38 commits

Author SHA1 Message Date
Wim Taymans
579949e2c5 gst-libs/gst/audio/gstbaseaudiosrc.c: Fix duration when no clock was provided. Fixes #520300.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Fix duration when no clock was provided. Fixes #520300.
2008-03-10 17:19:56 +00:00
Tim-Philipp Müller
3feb4bc8c5 gst-libs/gst/audio/: Ref audio clock class from a thread-safe context to make sure however unlikely that may be in pr...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init):
Ref audio clock class from a thread-safe context to make sure
we're not bit by GObjects lack of thread-safety here (#349410),
however unlikely that may be in practice.
2008-01-10 17:55:53 +00:00
Wim Taymans
2ea251a366 gst-libs/gst/audio/gstbaseaudiosrc.c: Add debug info.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create), (gst_base_audio_src_change_state):
Add debug info.
When going from PLAYING to PAUSED, pause the ringbuffer before calling
the parent state change function, just like the audiosink, because the
parent waits for the element to finish its processing before completing
the state change. This makes going to PAUSED a lot snappier.
When going from READY to PAUSED, don't allow the ringbuffer to start
yet.
2007-12-17 16:44:51 +00:00
Wim Taymans
157a65b15e Expose methods for some object properties so that subclasses can more easily configure them.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/audio/gstbaseaudiosink.c: (slave_method_get_type),
(gst_base_audio_sink_set_provide_clock),
(gst_base_audio_sink_get_provide_clock),
(gst_base_audio_sink_set_slave_method),
(gst_base_audio_sink_get_slave_method),
(gst_base_audio_sink_set_property),
(gst_base_audio_sink_get_property), (gst_base_audio_sink_drain),
(gst_base_audio_sink_none_slaving),
(gst_base_audio_sink_handle_slaving):
* gst-libs/gst/audio/gstbaseaudiosink.h:
Expose methods for some object properties so that subclasses can more
easily configure them.
Added slave method none, that completely disables slaving to the
internal clock.
API: gst_base_audio_sink_set_provide_clock()
API: gst_base_audio_sink_get_provide_clock()
API: gst_base_audio_sink_set_slave_method()
API: gst_base_audio_sink_get_slave_method()
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_set_provide_clock),
(gst_base_audio_src_get_provide_clock),
(gst_base_audio_src_set_property),
(gst_base_audio_src_get_property), (gst_base_audio_src_create):
* gst-libs/gst/audio/gstbaseaudiosrc.h:
Expose methods for some object properties so that subclasses can more
easily configure them.
API: gst_base_audio_src_set_provide_clock()
API: gst_base_audio_src_get_provide_clock()
2007-11-21 13:04:17 +00:00
Wim Taymans
c3dda05a8b gst-libs/gst/audio/gstbaseaudiosrc.c: Also handle the case where there is no clock set on the audio source, like in t...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Also handle the case where there is no clock set on the audio source,
like in the unit tests.
2007-10-08 18:02:53 +00:00
Wim Taymans
c942252430 gst-libs/gst/audio/gstbaseaudiosrc.*: Allow othe clocks than the internal clock to be used for the pipeline.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init), (gst_base_audio_src_init),
(gst_base_audio_src_provide_clock),
(gst_base_audio_src_set_property),
(gst_base_audio_src_get_property), (gst_base_audio_src_create):
* gst-libs/gst/audio/gstbaseaudiosrc.h:
Allow othe clocks than the internal clock to be used for the pipeline.
Add property to disable clock provide.
API: GstBaseAudioSrc::provide-clock
2007-09-10 22:10:54 +00:00
Wim Taymans
9b188adc27 Small cleanups.
Original commit message from CVS:
* ext/cdparanoia/gstcdparanoiasrc.c:
(gst_cd_paranoia_src_read_sector):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Small cleanups.
* ext/theora/theoradec.c: (theora_dec_sink_event):
Fix typo.
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_set_gst_timestamp):
Add some FIXME
* gst/playback/gstdecodebin.c: (queue_underrun_cb):
And some debug info when a FIXME path is hit.
2007-05-21 10:25:44 +00:00
Tim-Philipp Müller
9e873a3c83 When posting a warning message because samples were dropped, post something more intelligible than he default error m...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c: (_do_init),
(gst_base_audio_src_create):
* po/POTFILES.in:
When posting a warning message because samples were dropped, post
something more intelligible than he default error message for clock
errors which is just confusing in this context (#432984).
2007-04-25 08:54:34 +00:00
Wim Taymans
3c94c06c5a gst-libs/gst/audio/gstaudioclock.c: Fix clock name.
Original commit message from CVS:
* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_init),
(gst_audio_clock_new):
Fix clock name.
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_init), (gst_base_audio_sink_query):
* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_init),
(gst_base_audio_src_query), (gst_base_audio_src_get_offset),
(gst_base_audio_src_create):
Improve latency query code.
Use proper clock names.
2007-02-28 15:02:25 +00:00
Wim Taymans
a43d0f57eb gst-libs/gst/audio/gstbaseaudiosink.c: Answer latency query.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init), (gst_base_audio_sink_query),
(gst_base_audio_sink_render), (gst_base_audio_sink_callback),
(gst_base_audio_sink_async_play),
(gst_base_audio_sink_change_state):
Answer latency query.
Use configured latency when syncing.
Fix clock slaving.
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init), (gst_base_audio_src_dispose),
(gst_base_audio_src_query), (gst_base_audio_src_change_state):
Fix possible memleak.
Implement latency query.
Small cleanups.
2007-02-15 12:06:25 +00:00
Andy Wingo
d853b23819 gst-libs/gst/audio/gstbaseaudiosink.c
Original commit message from CVS:
2007-01-12  Andy Wingo  <wingo@pobox.com>

* gst-libs/gst/audio/gstbaseaudiosink.c
(gst_base_audio_sink_fixate): Implement, stolen from baseaudiosrc.
(gst_base_audio_sink_activate_pull): Remove the handwavey nego
stuff, as the base class handles this now. Actually tell the ring
buffer to start.
(gst_base_audio_sink_callback): Cast the ring buffer correctly.
How did this work before? Maybe I'm not as awesome a programmer as
I think.

* gst-libs/gst/audio/gstbaseaudiosrc.c
(gst_base_audio_src_fixate): Rework as a basesrc vmethod instead
of a pad function.
2007-01-12 21:19:35 +00:00
Wim Taymans
1980f16731 gst-libs/gst/audio/gstbaseaudiosink.c: Add some more info in a WARNING.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_render):
Add some more info in a WARNING.
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Handle PAUSE in create function, use new -core addition to
wait for playing. Fixes pausing and resuming capture from an
audiosrc.
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit),
(gst_ring_buffer_read):
Constify some more.
Caller supports interrupted reads now.
2006-09-27 13:52:14 +00:00
Wim Taymans
7367722509 Added docs for the audio libs.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-docs.sgml:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/audio/gstaudioclock.c:
* gst-libs/gst/audio/gstaudioclock.h:
* gst-libs/gst/audio/gstaudiosink.c:
* gst-libs/gst/audio/gstaudiosink.h:
* gst-libs/gst/audio/gstaudiosrc.c:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_render):
* gst-libs/gst/audio/gstbaseaudiosink.h:
* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_init):
* gst-libs/gst/audio/gstbaseaudiosrc.h:
* gst-libs/gst/audio/gstringbuffer.h:
Added docs for the audio libs.
2006-09-27 11:05:08 +00:00
Wim Taymans
65b1938b38 gst-libs/gst/audio/: Do the delay calculation in the source/sink base classes as this is specific for the capture/pla...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_get_time), (gst_base_audio_sink_callback):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_get_time), (gst_base_audio_src_fixate),
(gst_base_audio_src_get_times), (gst_base_audio_src_get_offset),
(gst_base_audio_src_create), (gst_base_audio_src_change_state):
Do the delay calculation in the source/sink base classes as this is
specific for the capture/playback mode.
Try to fixate a bit better, like round depth up to a multiple of 8
bigger than width.
Handle underruns correctly by marking DISCONT on buffers and adjusting
timestamps to handle the gap.
Set offset/offset_end correctly on buffers.
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_pause),
(gst_ring_buffer_samples_done), (gst_ring_buffer_commit),
(gst_ring_buffer_read):
Remove resync and underrun recovery from the ringbuffer.
Fix ringbuffer read code on under/overrun.
2006-09-15 14:53:44 +00:00
Wim Taymans
a0354a5b96 gst-libs/gst/audio/gstbaseaudiosrc.c: Don't try to post an error message when setting the clock fails as this can hap...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_set_clock),
(gst_base_audio_src_check_get_range), (gst_base_audio_src_create):
Don't try to post an error message when setting the clock fails
as this can happen when adding an element to a bin which will then
deadlock. Fixes #347296.
2006-07-12 13:24:19 +00:00
Wim Taymans
fa5dacc998 gst-libs/gst/audio/gstbaseaudiosink.c: Use gobject_class instead of G_OBJECT_CLASS (klass)
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init),
(gst_base_audio_sink_provide_clock):
Use gobject_class instead of G_OBJECT_CLASS (klass)
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init), (gst_base_audio_src_init),
(gst_base_audio_src_set_clock), (gst_base_audio_src_provide_clock),
(gst_base_audio_src_get_time),
(gst_base_audio_src_check_get_range), (gst_base_audio_src_create),
(gst_base_audio_src_create_ringbuffer):
Fix latency and buffer-time constants and properties ala basesink.
Implement pull based scheduling. Fixes #346527.
Set default blocksize in GstBaseSrc to 0, we default to pushing out
one segment.
Refuse slaving to another clock instead of silently not working.
Only provide a clock when we are actually able to do so.
Various small cleanups and compiler hints.
2006-07-06 15:54:50 +00:00
Wim Taymans
c068425b38 gst-libs/gst/audio/gstbaseaudiosrc.c: GstBaseAudioSrc must be live or it does not work.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_init),
(gst_base_audio_src_get_time), (gst_base_audio_src_create):
GstBaseAudioSrc must be live or it does not work.
* gst-libs/gst/audio/gstaudiosrc.c: (gst_audio_src_init):
Don't set live to TRUE as this is the default in the parentclass.
2006-04-28 14:37:46 +00:00
Wim Taymans
4df07064b8 gst-libs/gst/audio/gstbaseaudiosrc.c: Fix audio sources, forgot to make the ringbuffer startable...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_get_time), (gst_base_audio_src_create),
(gst_base_audio_src_change_state):
Fix audio sources, forgot to make the ringbuffer
startable...
2006-03-23 16:58:03 +00:00
Wim Taymans
2df1088b3f gst-libs/gst/audio/gstbaseaudiosrc.c: unparent instead of unref the ringbuffer.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_get_time), (gst_base_audio_src_create),
(gst_base_audio_src_change_state):
unparent instead of unref the ringbuffer.
2006-03-23 16:29:58 +00:00
Wim Taymans
2bc5ca1786 gst-libs/gst/audio/gstbaseaudiosink.c: Improve debugging.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_setcaps), (gst_base_audio_sink_event),
(gst_base_audio_sink_preroll), (gst_base_audio_sink_render):
Improve debugging.
Post error when caps cannot be parsed.
Resync on discontinuity in the stream.
Clip samples to segment boundaries.
return WRONG_STATE sooner when we are flushing.

* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_init),
(gst_base_audio_src_get_time), (gst_base_audio_src_create):
Make audiosrc operate in TIME.
Set TIMESTAMP and DURATION on buffers.
2006-01-25 09:27:01 +00:00
Thomas Vander Stichele
01bc68f918 stop making fun of older compilers
Original commit message from CVS:
stop making fun of older compilers
2005-12-20 12:24:29 +00:00
Thomas Vander Stichele
b4b2b62a74 gst-libs/gst/audio/: update strings, values are in microseconds change the default sink buffer time to something that...
Original commit message from CVS:

* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init):
update strings, values are in microseconds
change the default sink buffer time to something that is smaller
(to help software volume mixing have a slightly lower delay) but
still be acceptable on Wim's laptop
2005-12-20 12:00:26 +00:00
Thomas Vander Stichele
5f83aa7dfa expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:42:02 +00:00
Jan Schmidt
1cc82e9138 Rename gst_caps_structure_fixate_* to gst_structure_fixate_* (#322027)
Original commit message from CVS:
* ext/libvisual/visual.c: (get_buffer):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_fixate):
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_fixate_caps):
* gst/audioscale/gstaudioscale.c: (gst_audioscale_fixate):
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audiotestsrc_src_fixate):
* gst/sine/gstsinesrc.c: (gst_sinesrc_src_fixate):
* gst/videorate/gstvideorate.c: (gst_videorate_setcaps):
* gst/videoscale/gstvideoscale.c: (gst_videoscale_fixate_caps):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_videotestsrc_src_fixate):
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_fixate):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_fixate):
Rename gst_caps_structure_fixate_* to gst_structure_fixate_*
(#322027)
2005-11-21 14:29:53 +00:00
Wim Taymans
9edbf81fd2 gst-libs/gst/audio/gstbaseaudiosrc.c: Fix the audiosrc base class again, we did not unflush.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_change_state):
Fix the audiosrc base class again, we did not unflush.
2005-11-17 14:40:12 +00:00
Wim Taymans
5c17d94013 gst-libs/gst/audio/: Cleanups.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_render):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit),
(gst_ring_buffer_read):
Cleanups.
Commit and read from ringbuffer in samples rather than bytes.
2005-10-11 18:32:01 +00:00
Wim Taymans
81a09fc472 ext/alsa/gstalsasink.c: Also allow unsigned int.
Original commit message from CVS:
* ext/alsa/gstalsasink.c:
Also allow unsigned int.

* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create), (gst_base_audio_src_change_state):
Small cleanup
2005-10-10 17:04:24 +00:00
Edgard Lima
e846919fe9 gst-libs/gst/audio/: Fixed gstbaseaudiosrc adding ring buffer sync to it.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_event),
(gst_base_audio_src_create), (gst_base_audio_src_change_state):
* gst-libs/gst/audio/gstbaseaudiosrc.h:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_read):
patch from Edgard Lima <edgard.lima@indt.org.br>
Fixed gstbaseaudiosrc adding ring buffer sync to it.
2005-10-06 15:15:04 +00:00
Wim Taymans
79be8760f0 gst-libs/gst/audio/: get_clock -> provide_clock
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init),
(gst_base_audio_sink_provide_clock), (gst_base_audio_sink_render):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init),
(gst_base_audio_src_provide_clock):
get_clock -> provide_clock
2005-09-28 13:41:29 +00:00
Andy Wingo
6665c3084c All plugins updated for element state changes.
Original commit message from CVS:
2005-09-02  Andy Wingo  <wingo@pobox.com>

* All plugins updated for element state changes.
2005-09-02 15:43:18 +00:00
Andy Wingo
c32721723b Updates for two-arg init from GST_BOILERPLATE_FULL.
Original commit message from CVS:
2005-08-28  Andy Wingo  <wingo@pobox.com>

* Updates for two-arg init from GST_BOILERPLATE_FULL.
2005-08-28 17:52:45 +00:00
Andy Wingo
7afb104567 gst-libs/gst/audio/gstbaseaudiosrc.c
Original commit message from CVS:
2005-08-23  Andy Wingo  <wingo@pobox.com>

* gst-libs/gst/audio/gstbaseaudiosrc.c
(gst_base_audio_src_fixate): Only fixate endianness if it is
present in the caps.
2005-08-23 13:29:17 +00:00
Wim Taymans
4e3b19e5fb gst-libs/gst/audio/gstbaseaudiosrc.c: Open and close device in READY<->NULL state change.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_change_state):
Open and close device in READY<->NULL state change.
2005-08-16 15:53:59 +00:00
Wim Taymans
78b9a84efa gst-libs/gst/audio/gstbaseaudiosrc.c: More compilation fixen.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_event):
More compilation fixen.
2005-07-27 19:13:27 +00:00
Wim Taymans
82dc411e33 Updated seek example.
Original commit message from CVS:
* docs/libs/tmpl/gstringbuffer.sgml:
* examples/seeking/seek.c: (make_vorbis_theora_pipeline),
(query_rates), (query_positions_elems), (query_positions_pads),
(update_scale), (do_seek):
Updated seek example.

* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
(gst_ogg_pad_submit_page), (gst_ogg_demux_activate_chain),
(gst_ogg_demux_find_chains), (gst_ogg_demux_send_event),
(gst_ogg_demux_loop):
Push out correct discont values.

* ext/theora/theoradec.c: (theora_dec_src_convert),
(theora_dec_sink_convert), (theora_dec_src_getcaps),
(theora_dec_sink_event), (theora_handle_type_packet),
(theora_handle_header_packet), (theora_dec_push),
(theora_handle_data_packet), (theora_dec_chain),
(theora_dec_change_state):
Better timestamping.

* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init),
(vorbis_dec_sink_event), (vorbis_dec_push),
(vorbis_handle_data_packet), (vorbis_dec_chain):
* ext/vorbis/vorbisdec.h:
Better timestamping.

* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_get_time), (gst_base_audio_sink_get_times),
(gst_base_audio_sink_event), (gst_base_audio_sink_render):
Handle syncing on timestamps instead of sample offsets. Make
use of DISCONT values as described in design docs.

* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_get_time):
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_acquire),
(gst_ring_buffer_set_sample), (gst_ring_buffer_commit),
(gst_ring_buffer_read):
* gst-libs/gst/audio/gstringbuffer.h:
* sys/ximage/ximagesink.c: (gst_ximagesink_get_times),
(gst_ximagesink_show_frame):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_times):
Correcly convert buffer timestamp to stream time.
2005-07-16 14:47:27 +00:00
Thomas Vander Stichele
d143d256a6 more autistic cleanliness in functions/names/defines
Original commit message from CVS:
more autistic cleanliness in functions/names/defines
2005-07-14 09:35:11 +00:00
Thomas Vander Stichele
9e8a11d3ce use overridable ERROR_CFLAGS; more macro splitting
Original commit message from CVS:
use overridable ERROR_CFLAGS; more macro splitting
2005-07-10 12:03:58 +00:00
Wim Taymans
ceb88a7777 Added audiosource base classes.
Original commit message from CVS:
Added audiosource base classes.
Ported alsasrc, still very basic.
2005-07-06 15:27:17 +00:00