gstreamer/gst/playback
Ronald S. Bultje 823ceafca7 ext/mad/gstmad.c: Allow for mp3 rate/channels changes. However, only very conservatively. Reason that we *have* to en...
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_check_caps_reset),
(gst_mad_change_state):
Allow for mp3 rate/channels changes. However, only very
conservatively. Reason that we *have* to enable this is smiply
because the mad find_sync() function is not good enough, it will
regularly sync on random data as valid frames and therefore make
us provide random caps as *final* caps of the stream. The best fix
I could think of is to simply require several of the same stream
changes in a row before we change caps.
The actual testcase that works now is #
* ext/ogg/Makefile.am:
* ext/ogg/gstogg.c: (plugin_init):
* ext/ogg/gstogmparse.c:
OGM support (video only for now; I need an audio sample file).
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_process_stream), (gst_asf_demux_video_caps),
(gst_asf_demux_add_video_stream):
WMV extradata.
* gst/playback/gstplaybasebin.c: (unknown_type):
Don't error out on single unknown-types after all. It's wrong.
If we found type of video and audio but not of a subtitle stream,
it will still error out (which is unwanted). Will find a better fix
later on.
* gst/typefind/gsttypefindfunctions.c: (ogmvideo_type_find),
(ogmaudio_type_find), (plugin_init):
OGM support.
2004-09-20 12:40:40 +00:00
..
.gitignore ignore 2004-07-20 16:06:38 +00:00
decodetest.c Added some playback helper elements and some test apps, very alpha still. 2004-07-05 11:14:30 +00:00
gstdecodebin.c rename properly 2004-07-29 14:08:11 +00:00
gstplaybasebin.c ext/mad/gstmad.c: Allow for mp3 rate/channels changes. However, only very conservatively. Reason that we *have* to en... 2004-09-20 12:40:40 +00:00
gstplaybasebin.h gst/playback/: Better error recovery. Added configurable preroll queue size. Faster detection of no-more-pads. 2004-07-16 10:45:33 +00:00
gstplaybin.c gst/playback/gstplaybin.c: Volume is a double not a float. 2004-09-15 16:48:43 +00:00
gststreaminfo.c gst/playback/: More playbin fixes. Added README. Do better element filtering. 2004-07-07 16:53:55 +00:00
gststreaminfo.h More playback updates, attempt to fix things after the state change breakage. 2004-07-22 16:44:58 +00:00
Makefile.am gst/playback/Makefile.am: Add headers to noinst 2004-07-08 12:30:52 +00:00
README gst/playback/: More playbin fixes. Added README. Do better element filtering. 2004-07-07 16:53:55 +00:00
test.c gst/playback/: More playbin fixes. Added README. Do better element filtering. 2004-07-07 16:53:55 +00:00
test2.c gst/playback/: More playbin fixes. Added README. Do better element filtering. 2004-07-07 16:53:55 +00:00
test3.c ext/alsa/: Re-commit ALSA switches. 2004-08-31 14:12:49 +00:00
test4.c gst/playback/: More fixes on reusing of the element. 2004-07-12 09:11:41 +00:00

decoderbin:

  A bin with a sinkpad that decodes the data into raw formats. It works by sending
  the input data through a typefind element and then recursively autoplugs elements 
  from the registry until a raw format is obtained. It will then create a new ghostpad
  on itself to signal the app of the new pad. 

  TODO
   - reuse of decoderbin, cleanup in READY state
   - debugging 
   - threading after demuxing?
   - better factory selection, based on Demuxer/Decoder types and ranks.
   - error handling

baseplaybin:

  A bin with an uri property. It will find the right source element from the registry
  and connect a decoderbin to it. When going to the PAUSED state, it will iterate the
  decoderbin and listen for new pad signals from it. It will connect a queue to each
  new pad and will iterate the decoderbin until one of the queues is filled. It is
  assumed that by that time all the streams will be found so that when leaving the
  PAUSED state, one can query the number of streams in the media file with the given
  uri.
  Before going to the PLAYING state, it is possible to connect a custom element to
  each of the streams. To do that, you have to add the element to the bin and then
  connect the pad(s) from the stream(s). You do not have to add the elements in
  a thread, the bin will take care of then when it's needed. You are allowed to use
  threads inside the elements, of course.
  The bin tries to be smart and doesn't add a queue when there is only one possible 
  stream.
  
  TODO
  - reuse, cleanup in ready state
  - debugging
  - when the first pad is closed, it's possible that another dynamic element is
    added somewhere so that we need a queue for the first pad as well.
  - error handling

playbin:
  
   Extends baseplaybin, sets up default audiosink and videosink for first audio/video
   stream detected. implements seeking and querying on the configured sinks.

   TODO
   - reuse, refcounting, cleanup in READY state
   - debugging
   - error handling