Commit graph

154 commits

Author SHA1 Message Date
Ronald S. Bultje
2ad3dc3e48 gst/playback/gstplaybasebin.c: Remove hack to get rid of assert and get rid of unlinked signals properly.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy):
Remove hack to get rid of assert and get rid of unlinked
signals properly.
2005-01-09 19:41:07 +00:00
Ronald S. Bultje
7506b79230 gst/playback/gstplaybasebin.c: Set source to NULL so that resources are free'ed. Fixes issues with playback of CDDA a...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Set source to NULL so that resources are free'ed. Fixes issues
with playback of CDDA and similar device-accessing things.
2005-01-09 19:29:06 +00:00
Ronald S. Bultje
5e88810571 gst/playback/gstplaybasebin.c: Fix hanging subs.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Fix hanging subs.
2005-01-09 18:33:38 +00:00
Ronald S. Bultje
8669aaa48d gst/playback/gstplaybasebin.*: Multiple .sub files is just a stupid idea... Fix some threading mistakes. Interestingl...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(gen_preroll_element), (remove_groups), (setup_subtitle),
(gen_source_element), (setup_source):
* gst/playback/gstplaybasebin.h:
Multiple .sub files is just a stupid idea... Fix some threading
mistakes. Interestingly, external .sub files cause playbin to
hang, I don't know why... Parsing fixes contributed by Felix
Kooman <fkooman@tuxed.net>.
2005-01-09 18:03:40 +00:00
Ronald S. Bultje
4dced785fe Remove all references to xvideosink, fix examples (#140845).
Original commit message from CVS:
* configure.ac:
* examples/capsfilter/capsfilter1.c: (main):
* examples/seeking/spider_seek.c: (make_spider_pipeline):
* ext/dvdread/Makefile.am:
* ext/dvdread/demo-play:
* ext/dvdread/demo-play.c:
* gconf/gstreamer.schemas.in:
* gst-libs/gst/gconf/gconf.c:
* sys/v4l/TODO:
* testsuite/Makefile.am:
* testsuite/embed/Makefile.am:
* testsuite/embed/embed.c: (cb_expose), (main):
Remove all references to xvideosink, fix examples (#140845).
* gst/playback/gstplaybasebin.c: (group_destroy):
Apparently, disposal does not unlink - so do explicitely.
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
Add debug.
2005-01-09 14:53:59 +00:00
Ronald S. Bultje
200ccf42dd ext/dvdnav/dvdnavsrc.c: Add DVD-nav URI (dvdnav://) for Totem testing purposes.
Original commit message from CVS:
* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_get_type),
(dvdnavsrc_uri_get_type), (dvdnavsrc_uri_get_protocols),
(dvdnavsrc_uri_get_uri), (dvdnavsrc_uri_set_uri),
(dvdnavsrc_uri_handler_init):
Add DVD-nav URI (dvdnav://) for Totem testing purposes.
* gst/playback/gstplaybasebin.c: (gen_source_element):
Add MMS to streaming URIs.
2005-01-09 00:43:09 +00:00
Ronald S. Bultje
14656be9b5 gst/playback/: Adding stream selection support plus required properties for applications to use this. Fully fixes #10...
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(group_destroy), (group_commit), (group_is_muted),
(gen_preroll_element), (add_stream), (unknown_type),
(probe_triggered), (preroll_unlinked), (mute_stream),
(silence_stream), (new_decoded_pad), (setup_substreams),
(setup_source), (get_active_source), (mute_group_type),
(muted_group_change_state), (set_active_source),
(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
(play_base_eos), (gst_play_base_bin_change_state):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (add_sink), (setup_sinks):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init),
(gst_stream_info_dispose), (stream_info_mute_pad),
(stream_info_change_state), (gst_stream_info_set_mute):
* gst/playback/gststreamselector.c: (gst_stream_selector_get_type),
(gst_stream_selector_base_init), (gst_stream_selector_class_init),
(gst_stream_selector_init), (gst_stream_selector_dispose),
(gst_stream_selector_get_linked_pad),
(gst_stream_selector_get_caps), (gst_stream_selector_link),
(gst_stream_selector_get_linked_pads),
(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
* gst/playback/gststreamselector.h:
Adding stream selection support plus required properties for
applications to use this. Fully fixes #100931.
2005-01-08 18:31:22 +00:00
Ronald S. Bultje
18881b687a OGM text support, Matroska UTF-8 text support, deadlock fixes all over the place, subtitle awareness in decodebin/pla...
Original commit message from CVS:
* configure.ac:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_new):
* ext/ogg/gstogmparse.c: (gst_ogm_text_parse_get_type),
(gst_ogm_text_parse_base_init), (gst_ogm_text_parse_init),
(gst_ogm_parse_get_sink_querytypes), (gst_ogm_parse_sink_convert),
(gst_ogm_parse_sink_query), (gst_ogm_parse_chain),
(gst_ogm_parse_plugin_init):
* ext/pango/gsttextoverlay.c: (gst_textoverlay_linkedpads),
(gst_textoverlay_link), (gst_textoverlay_getcaps),
(gst_textoverlay_event), (gst_textoverlay_video_chain),
(gst_textoverlay_loop), (gst_textoverlay_init), (plugin_init):
* ext/pango/gsttextoverlay.h:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(gst_matroska_demux_handle_seek_event),
(gst_matroska_demux_sync_streams),
(gst_matroska_demux_parse_blockgroup),
(gst_matroska_demux_subtitle_caps),
(gst_matroska_demux_plugin_init):
* gst/matroska/matroska-ids.h:
* gst/playback/gstdecodebin.c: (close_pad_link):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(gen_preroll_element), (remove_groups), (add_stream),
(new_decoded_pad), (setup_subtitles), (gen_source_element),
(setup_source):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gen_text_element), (setup_sinks):
* gst/subparse/Makefile.am:
* gst/subparse/gstsubparse.c: (gst_subparse_get_type),
(gst_subparse_base_init), (gst_subparse_class_init),
(gst_subparse_init), (gst_subparse_formats),
(gst_subparse_eventmask), (gst_subparse_event),
(gst_subparse_handle_event), (convert_encoding), (get_next_line),
(parse_mdvdsub), (parse_mdvdsub_init), (parse_subrip),
(parse_subrip_deinit), (parse_subrip_init), (parse_mpsub),
(parse_mpsub_deinit), (parse_mpsub_init),
(gst_subparse_buffer_format_autodetect),
(gst_subparse_format_autodetect), (gst_subparse_loop),
(gst_subparse_change_state), (gst_subparse_type_find),
(plugin_init):
* gst/subparse/gstsubparse.h:
* gst/typefind/gsttypefindfunctions.c: (ogmtext_type_find),
(plugin_init):
Add subtitle support, .sub parser (supports SRT and MPsub),
OGM text support, Matroska UTF-8 text support, deadlock fixes
all over the place, subtitle awareness in decodebin/playbin
and some fixes to textoverlay to handle subtitles in a stream
correctly. Fixes #100931.
2005-01-08 18:22:41 +00:00
Tim-Philipp Müller
9d2bb1e905 gst/playback/gstplaybasebin.c: Fix for #162924 - free caps after use, not before
Original commit message from CVS:

patch by: Tim-Philipp Müller  <t.i.m@zen.co.uk>

* gst/playback/gstplaybasebin.c:
Fix for #162924 - free caps after use, not before
2005-01-05 10:11:23 +00:00
Thomas Vander Stichele
6312b0dca3 Fix for #154773 - fixes playback of small .wav files
Original commit message from CVS:
Fix for #154773 - fixes playback of small .wav files
2005-01-04 11:09:19 +00:00
Wim Taymans
96d3bbd82e gst/playback/gstplaybasebin.c: Revert patch 1.38 as clock distribution over schedulers does not work correcly in the ...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
Revert patch 1.38 as clock distribution over schedulers does
not work correcly in the core yet.
2004-12-22 10:06:02 +00:00
Ronald S. Bultje
810bc9fc7e gst/playback/: Fix memleaks (#157233).
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* gst/playback/gstdecodebin.c: (new_pad), (close_link):
* gst/playback/gstplaybasebin.c: (new_decoded_pad):
Fix memleaks (#157233).
2004-12-16 11:54:53 +00:00
Ronald S. Bultje
c0d024e29a Synchronize property names where not yet the case. Devices are now device=X, other versions are deprecated (but still...
Original commit message from CVS:
* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init),
(cdparanoia_set_property), (cdparanoia_get_property):
* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init),
(dvdnavsrc_set_property), (dvdnavsrc_get_property):
* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init),
(dvdreadsrc_init), (dvdreadsrc_set_property),
(dvdreadsrc_get_property):
* sys/vcd/vcdsrc.c: (gst_vcdsrc_class_init),
(gst_vcdsrc_set_property), (gst_vcdsrc_get_property):
Synchronize property names where not yet the case. Devices are
now device=X, other versions are deprecated (but still exist).
Also use g_free() unconditionally.
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(setup_source), (gst_play_base_bin_get_property):
Expose source.
2004-12-09 12:57:29 +00:00
Ronald S. Bultje
795615d52e gst/playback/gstplaybasebin.c: Don't crash on EMPTY caps (e.g. when the demuxer didn't recognize the contained stream).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
Don't crash on EMPTY caps (e.g. when the demuxer didn't recognize
the contained stream).
2004-12-01 17:58:19 +00:00
Christophe Fergeau
2b204597ba gst/playback/gstplaybasebin.c: fixed a caps leak nullify source and decoder when going from READY to NULL so that we ...
Original commit message from CVS:
2004-11-27  Christophe Fergeau  <teuf@gnome.org>

* gst/playback/gstplaybasebin.c: (setup_source): fixed a caps leak
(gst_play_base_bin_change_state): nullify source and decoder when
going from READY to NULL so that we don't try to do weird stuff with
them when going from NULL to READY
* gst/playback/gstplaybin.c: (gst_play_bin_init): use gst_object_unref
instead of g_object_unref
(gen_video_element), (gen_audio_element): more refcounting fixes, now
it should be correct
(gst_play_bin_change_state): don't call remove_sinks if we are
currently disposing the object
2004-11-27 20:28:27 +00:00
Ronald S. Bultje
c414d6277b gst/playback/gstplaybasebin.*: Implement buffering. Needs some more work.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(probe_triggered), (check_queue), (buffer_underrun),
(buffer_running), (buffer_overrun), (gen_source_element),
(setup_source):
* gst/playback/gstplaybasebin.h:
Implement buffering. Needs some more work.
2004-11-26 12:31:05 +00:00
Ronald S. Bultje
2b39885ed9 Remove hacks for older core. Require newer core version accordingly.
Original commit message from CVS:
* configure.ac:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find):
Remove hacks for older core. Require newer core version
accordingly.
2004-11-25 20:09:53 +00:00
Ronald Bultje
28d19a542d gst/playback/gstplaybasebin.c: Fix unplayable files error handling. Fixes #158365
Original commit message from CVS:
patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>
* gst/playback/gstplaybasebin.c:
Fix unplayable files error handling.  Fixes #158365
2004-11-23 16:52:15 +00:00
Ronald S. Bultje
527794efc5 gst/playback/gstplaybasebin.c: Re-add clock distribution hack (until new core is released).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
Re-add clock distribution hack (until new core is released).
Fixes #158125.
2004-11-13 15:20:10 +00:00
Ronald S. Bultje
767cd0d102 gst/playback/gstplaybasebin.c: Don't assert (#157853).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
Don't assert (#157853).
2004-11-10 16:05:17 +00:00
Wim Taymans
b398d11af9 gst/playback/: Updated README.
Original commit message from CVS:
* gst/playback/README:
* gst/playback/gstplaybasebin.c: (group_destroy), (group_is_muted),
(add_stream), (unknown_type), (add_element_stream), (no_more_pads),
(probe_triggered), (preroll_unlinked), (new_decoded_pad),
(gst_play_base_bin_change_state), (gst_play_base_bin_found_tag):
* gst/playback/gstplaybin.c: (gen_vis_element), (remove_sinks),
(setup_sinks):
* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute),
(gst_stream_info_is_mute), (gst_stream_info_set_property):
* gst/playback/gststreaminfo.h:
Updated README.
Only switch groups if all streams have muted (EOSed).
Send Tags in sync with the stream playback instead of in
the playback/preroll phase.
Some cleanups, free the fakesrc elements.
2004-11-09 12:10:28 +00:00
Wim Taymans
275958323c gst/playback/: Updated README, added more comments for fixmes etc..
Original commit message from CVS:
* gst/playback/README:
* gst/playback/gstdecodebin.c: (close_pad_link), (try_to_link_1):
* gst/playback/gstplaybasebin.c: (probe_triggered),
(gst_play_base_bin_change_state):
Updated README, added more comments for fixmes etc..
2004-11-08 18:27:25 +00:00
Wim Taymans
281c3b53b7 gst/playback/gstplaybasebin.c: We can remove this hack now.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
We can remove this hack now.
2004-11-08 18:12:20 +00:00
Wim Taymans
ac515f710f gst/playback/: Add support for chained ogg files. Prepare for playlist support. This patch introduces the concept of ...
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (unlinked):
* gst/playback/gstplay-marshal.list:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(gst_play_base_bin_init), (group_create), (get_active_group),
(get_building_group), (group_destroy), (group_commit),
(queue_overrun), (remove_groups), (add_stream), (unknown_type),
(add_element_stream), (no_more_pads), (probe_triggered),
(preroll_unlinked), (new_decoded_pad), (removed_decoded_pad),
(state_change), (setup_source), (gst_play_base_bin_get_property),
(gst_play_base_bin_change_state), (gst_play_base_bin_add_element),
(gst_play_base_bin_link_stream),
(gst_play_base_bin_get_streaminfo):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(remove_sinks), (setup_sinks), (gst_play_bin_change_state):
Add support for chained ogg files. Prepare for playlist
support. This patch introduces the concept of pad groups, which
together compose one playable media file.
2004-11-08 09:46:17 +00:00
Wim Taymans
9b23e6f57f gst/playback/: Fix playback of multiple files. a slightly different approach to handling dynamic pad removals.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(try_to_link_1), (get_our_ghost_pad), (remove_element_chain),
(unlinked), (no_more_pads), (close_link):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(unknown_type), (add_element_stream), (new_decoded_pad),
(removed_decoded_pad), (setup_source):
* gst/playback/gststreaminfo.c: (gst_stream_info_get_type),
(gst_stream_info_class_init), (gst_stream_info_init),
(gst_stream_info_new), (gst_stream_info_dispose),
(stream_info_mute_pad), (gst_stream_info_set_property),
(gst_stream_info_get_property):
* gst/playback/gststreaminfo.h:
Fix playback of multiple files.
a slightly different approach to handling dynamic pad removals.
This one only looks at pads that we have linked.
2004-11-02 10:30:36 +00:00
Ronald S. Bultje
2070a88585 gst/playback/: Make caps explicitely available. Makes testing for unsupported types possible. Improves error reporting.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (unknown_type),
(add_element_stream), (new_decoded_pad),
(gst_play_base_bin_change_state):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init),
(gst_stream_info_init), (gst_stream_info_new),
(gst_stream_info_dispose), (gst_stream_info_get_property):
* gst/playback/gststreaminfo.h:
Make caps explicitely available. Makes testing for unsupported
types possible. Improves error reporting.
2004-10-29 15:27:10 +00:00
Ronald S. Bultje
3b2fd2e665 gst/playback/gstplaybasebin.c: Improve error reporting.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (thread_error), (setup_source),
(gst_play_base_bin_change_state):
Improve error reporting.
2004-10-29 08:40:28 +00:00
Ronald S. Bultje
f5c1757f50 ext/ogg/gstoggdemux.c: Wrong return.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate):
Wrong return.
* gst/playback/Makefile.am:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init):
* gst/playback/gstplay-marshal.list:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init):
Fix marshallers.
2004-10-20 12:02:20 +00:00
Wim Taymans
216fb64b09 gst/playback/: Add sink padtemplate to decodebin.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(gst_decode_bin_init), (find_compatibles), (close_pad_link),
(try_to_link_1), (no_more_pads), (close_link), (type_found):
* gst/playback/gstplaybasebin.c: (gen_preroll_element),
(remove_prerolls), (unknown_type), (add_element_stream),
(new_decoded_pad), (setup_source), (gst_play_base_bin_add_element),
(gst_play_base_bin_remove_element),
(gst_play_base_bin_link_stream):
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_vis_element), (remove_sinks), (setup_sinks):
* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
(gst_stream_info_get_type), (gst_stream_info_class_init),
(gst_stream_info_init), (gst_stream_info_new),
(gst_stream_info_dispose), (stream_info_mute_pad),
(gst_stream_info_set_property), (gst_stream_info_get_property):
* gst/playback/gststreaminfo.h:
Add sink padtemplate to decodebin.
Added some more comments.
Make queue size configurable in playbasebin.
Added possibility to use elements as sinks (ex cdaudio).
2004-10-18 13:40:48 +00:00
Wim Taymans
0e9b17a986 gst/playback/gstplaybasebin.c: Wrong var used to get g_list_next.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Wrong var used to get g_list_next.
2004-10-11 12:07:15 +00:00
Wim Taymans
faa1d71a2e gst/playback/gstplaybasebin.c: Cleanup the previous pipeline a little earlier for the case that a source element prov...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Cleanup the previous pipeline a little earlier for the
case that a source element provides raw data.
2004-10-11 09:35:48 +00:00
Ronald S. Bultje
c82f67606c gst/playback/gstplaybasebin.c: Actually clean up streaminfo if output fails. This would trigger if, for example, ther...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source),
(gst_play_base_bin_change_state):
Actually clean up streaminfo if output fails. This would trigger
if, for example, there was no CD in the drive. No preroll, so
a streaminfo structure is created, but the subsequent state change
of the thread fails.
* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
Don't change state if parent failed.
2004-10-09 13:50:33 +00:00
Wim Taymans
f1684d7324 gst/playback/gstplaybasebin.c: Do not try to autoplug sources that generate raw streams like cdparanoia.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_preroll_element),
(unknown_type), (setup_source), (gst_play_base_bin_remove_element),
(gst_play_base_bin_link_stream):
Do not try to autoplug sources that generate raw streams like
cdparanoia.
disconnect the preroll overrun signal when we don't need it anymore.
2004-10-08 17:10:16 +00:00
Wim Taymans
a85131e7ca gst/playback/: Reuse the audio and video bins.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(gst_decode_bin_init), (find_compatibles), (close_pad_link),
(try_to_link_1), (no_more_pads), (close_link), (type_found):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(unknown_type), (gst_play_base_bin_remove_element),
(gst_play_base_bin_link_stream):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gst_play_bin_init),
(gst_play_bin_set_property), (gen_video_element),
(gen_audio_element), (setup_sinks):
* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
(gst_stream_info_get_type), (gst_stream_info_class_init),
(gst_stream_info_init), (gst_stream_info_new),
(gst_stream_info_dispose), (stream_info_mute_pad),
(gst_stream_info_set_property), (gst_stream_info_get_property):
* gst/playback/gststreaminfo.h:
Reuse the audio and video bins.
Some internal cleanups in the stream selection code.
2004-10-08 11:30:32 +00:00
Wim Taymans
72570f800a gst/playback/: Implement muting/unmuting of streams, mute streams that are not used.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (play_base_bin_mute_pad),
(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream):
* gst/playback/gstplaybin.c: (setup_sinks):
Implement muting/unmuting of streams, mute streams that are not
used.
2004-10-07 11:14:48 +00:00
Wim Taymans
ab34b63400 gst/playback/: Do not signal the no_more_pads after the first pad when we are plugging a non dynamic element with mul...
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
(no_more_pads), (close_link), (type_found):
* gst/playback/gstplaybasebin.c: (new_decoded_pad):
* gst/playback/gstplaybin.c: (gen_video_element):
Do not signal the no_more_pads after the first pad when
we are plugging a non dynamic element with multiple
output pads (like swfdec, dvdec, ...).
2004-10-06 16:33:06 +00:00
Wim Taymans
e3ddfa2c41 gst/playback/: Set state on newly added element to READY so that negotiation can happen ASAP.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(find_compatibles), (close_pad_link), (try_to_link_1),
(no_more_pads), (close_link), (type_found):
* gst/playback/gstplaybasebin.c: (new_decoded_pad):
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element):
Set state on newly added element to READY so that negotiation
can happen ASAP.
Addes some more debug info.
Do not try to plug pads with multiple caps structures or ANY
because it is too dangerous since we do not do dynamic
replugging.
2004-10-06 09:51:37 +00:00
Ronald S. Bultje
6fd179b578 ext/flac/gstflacdec.c: Only return true if we actually filled something in. Prevents player applications from showing...
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flacdec_src_query):
Only return true if we actually filled something in. Prevents
player applications from showing a random length for flac files.
* gst-libs/gst/riff/riff-read.c: (gst_riff_read_class_init),
(gst_riff_read_use_event), (gst_riff_read_handle_event),
(gst_riff_read_seek), (gst_riff_read_skip), (gst_riff_read_strh),
(gst_riff_read_strf_vids_with_data),
(gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_iavs):
OK, ok, so I implemented event handling. Apparently it's normal
that we receive random events at random points without asking
for it.
* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query),
(gst_avi_demux_handle_src_event), (gst_avi_demux_stream_index),
(gst_avi_demux_sync), (gst_avi_demux_stream_scan),
(gst_avi_demux_massage_index), (gst_avi_demux_stream_header),
(gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry),
(gst_avi_demux_stream_data), (gst_avi_demux_loop):
* gst/avi/gstavidemux.h:
Implement non-lineair chunk handling and subchunk processing.
The first solves playback of AVI files where the audio and video
data of individual buffers that we read are not synchronized.
This should not happen according to the wonderful AVI specs, but
of course it does happen in reality. It is also a prerequisite for
the second. Subchunk processing allows us to cut chunks in small
pieces and process each of these pieces separately. This is
required because I've seen several AVI files with incredibly large
audio chunks, even some files with only one audio chunk for the
whole file. This allows for proper playback including seeking.
This patch is supposed to fix all AVI A/V sync issues.
* gst/flx/gstflxdec.c: (gst_flxdec_class_init),
(flx_decode_chunks), (flx_decode_color), (gst_flxdec_loop):
Work.
* gst/modplug/gstmodplug.cc:
Proper return value setting for the query() function.
* gst/playback/gstplaybasebin.c: (setup_source):
Being in non-playing state (after, e.g., EOS) is not necessarily
a bad thing. Allow for that. This fixes playback of short files.
They don't actually playback fully now, because the clock already
runs. This means that small files (<500kB) with a small length
(<2sec) will still not or barely play. Other files, such as mod
or flx, will work correctly, however.
2004-09-29 09:45:40 +00:00
Wim Taymans
99b89da705 gst/playback/gstplaybasebin.c: Only signal the no_more_pads signal when we have added the stream to our list.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (new_decoded_pad):
Only signal the no_more_pads signal when we have
added the stream to our list.
2004-09-24 17:33:00 +00:00
Wim Taymans
26f9ce012c gst/playback/: Don't try to preroll or decode more than one audio/video track.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (remove_prerolls),
(new_decoded_pad):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (setup_sinks):
Don't try to preroll or decode more than one audio/video
track.
2004-09-24 16:38:28 +00:00
Ronald S. Bultje
05090d3025 gst/playback/gstplaybasebin.c: Throw error if we failed to find a suitable output. This should throw an error if we s...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
Throw error if we failed to find a suitable output. This should
throw an error if we successfully set up a pipeline (e.g. because
we recognized a media file) but found no decodable streams in it
(e.g. because it contains only media stream types for which we
have no decoders, or because it's not a media type).
2004-09-24 16:01:46 +00:00
Ronald S. Bultje
07b9b8ac0b gst/asfdemux/gstasfdemux.c: Prevent infinite loops. More correct error reporting.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (_read_var_length), (_read_guid),
(gst_asf_demux_process_segment), (gst_asf_demux_handle_data),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event):
Prevent infinite loops. More correct error reporting.
* gst/auparse/gstauparse.c: (gst_auparse_chain):
Error out if negotiation fails.
* gst/playback/gstplaybasebin.c: (setup_source),
(gst_play_base_bin_change_state), (gst_play_base_bin_error),
(gst_play_base_bin_found_tag):
Error/tag forwarding. Pre-roll fixes for source errors on state
changes (e.g. "file does not exist") to prevent hangs.
2004-09-22 07:55:37 +00:00
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
Ronald S. Bultje
68d1ca33ae gst/playback/gstplaybasebin.c: Handle the case where we failed to setup a clear pipeline. This will throw an error (o...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (state_change), (setup_source),
(gst_play_base_bin_change_state):
Handle the case where we failed to setup a clear pipeline. This
will throw an error (or EOS, another nice case) and if you don't
catch that, the app will wait for the signal forever (and thus
hang).
2004-09-15 08:35:18 +00:00
Ronald S. Bultje
312cc7ec64 ext/gnomevfs/: Use _uri_new() instead of _open(), so it doesn't take as long and
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssink.c:
(gst_gnomevfssink_uri_get_protocols):
* ext/gnomevfs/gstgnomevfssrc.c:
(gst_gnomevfssrc_uri_get_protocols):
* ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris):
* ext/gnomevfs/gstgnomevfsuri.h:
Use _uri_new() instead of _open(), so it doesn't take as long and
Christophe's computer won't hang.
* gst/playback/gstplaybasebin.c: (unknown_type):
Throw error on unknown media type, so apps actually display it.
2004-09-15 06:33:44 +00:00
Wim Taymans
87eb159d81 gst/playback/: Some more work on making sure seeking pauses the pipeline and that changing the uri actually does some...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (queue_overrun), (no_more_pads),
(setup_source), (gst_play_base_bin_set_property),
(gst_play_base_bin_add_element):
* gst/playback/gstplaybin.c: (gst_play_bin_send_event):
Some more work on making sure seeking pauses the pipeline and
that changing the uri actually does something.
2004-09-14 16:54:14 +00:00
Ronald S. Bultje
8005b541c5 gst/playback/gstplaybasebin.c: Handle double disposals, and proper change of URIs.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c:
(gst_play_base_bin_dispose), (gst_play_base_bin_set_property):
Handle double disposals, and proper change of URIs.
2004-09-13 18:23:49 +00:00
Thomas Vander Stichele
7144b47a83 rename properly
Original commit message from CVS:
rename properly
2004-07-29 14:08:11 +00:00
Thomas Vander Stichele
6976f09876 rename properly
Original commit message from CVS:
rename properly
2004-07-29 14:05:09 +00:00
Wim Taymans
0edbb4a19d More playback updates, attempt to fix things after the state change breakage.
Original commit message from CVS:
* examples/seeking/seek.c: (update_scale), (main):
* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
(gst_decode_bin_class_init), (gst_decode_bin_is_dynamic),
(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
(gst_decode_bin_init), (gst_decode_bin_dispose),
(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
(no_more_pads), (close_link), (type_found),
(gst_decode_bin_set_property), (gst_decode_bin_get_property),
(plugin_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
(gst_play_base_bin_class_init), (gst_play_base_bin_init),
(gst_play_base_bin_dispose), (queue_overrun),
(gen_preroll_element), (remove_prerolls), (unknown_type),
(no_more_pads), (new_stream), (setup_source),
(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
(play_base_eos), (gst_play_base_bin_change_state),
(gst_play_base_bin_add_element),
(gst_play_base_bin_remove_element),
(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
(gst_play_base_bin_unlink_stream),
(gst_play_base_bin_get_streaminfo):
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element):
* gst/playback/gststreaminfo.h:
More playback updates, attempt to fix things after the state change
breakage.
2004-07-22 16:44:58 +00:00
Wim Taymans
b7715638af gst/playback/: Better error recovery. Added configurable preroll queue size. Faster detection of no-more-pads.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
(gst_decode_bin_class_init), (gst_decode_bin_is_dynamic),
(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
(gst_decode_bin_init), (gst_decode_bin_dispose),
(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
(no_more_pads), (close_link), (type_found),
(gst_decode_bin_set_property), (gst_decode_bin_get_property),
(gst_decode_bin_change_state), (plugin_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
(gst_play_base_bin_class_init), (gst_play_base_bin_init),
(gst_play_base_bin_dispose), (queue_overrun),
(gen_preroll_element), (remove_prerolls), (unknown_type),
(no_more_pads), (new_stream), (setup_source),
(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
(play_base_eos), (gst_play_base_bin_change_state),
(gst_play_base_bin_add_element),
(gst_play_base_bin_remove_element),
(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
(gst_play_base_bin_unlink_stream),
(gst_play_base_bin_get_streaminfo):
* gst/playback/gstplaybasebin.h:
Better error recovery. Added configurable preroll queue size. Faster
detection of no-more-pads.
2004-07-16 10:45:33 +00:00
Wim Taymans
467c454d75 gst/playback/: More fixes on reusing of the element.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
(compare_ranks), (print_feature), (gst_decode_bin_init),
(gst_decode_bin_dispose), (find_compatibles), (close_pad_link),
(try_to_link_1), (new_pad), (close_link), (type_found),
(gst_decode_bin_set_property), (gst_decode_bin_get_property),
(gst_decode_bin_change_state), (plugin_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
(gst_play_base_bin_class_init), (gst_play_base_bin_init),
(gst_play_base_bin_dispose), (queue_overrun),
(gen_preroll_element), (remove_prerolls), (no_more_pads),
(new_stream), (setup_source), (gst_play_base_bin_set_property),
(gst_play_base_bin_get_property), (play_base_eos),
(gst_play_base_bin_change_state), (gst_play_base_bin_add_element),
(gst_play_base_bin_remove_element),
(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
(gst_play_base_bin_unlink_stream),
(gst_play_base_bin_get_streaminfo):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
(gst_play_bin_class_init), (gst_play_bin_init),
(gst_play_bin_dispose), (gst_play_bin_set_property),
(gst_play_bin_get_property), (gen_video_element),
(gen_audio_element), (remove_sinks), (setup_sinks),
(gst_play_bin_change_state), (gst_play_bin_get_event_masks),
(gst_play_bin_send_event), (gst_play_bin_get_formats),
(gst_play_bin_convert), (gst_play_bin_get_query_types),
(gst_play_bin_query), (plugin_init):
* gst/playback/test4.c: (main):
More fixes on reusing of the element.
2004-07-12 09:11:41 +00:00
Thomas Vander Stichele
c750d9bd49 don't assert in state change
Original commit message from CVS:
don't assert in state change
2004-07-09 10:56:51 +00:00
Wim Taymans
d23e3dea3f gst/playback/: More playbin fixes. Added README. Do better element filtering.
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/README:
* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
(compare_ranks), (print_feature), (gst_decode_bin_init),
(gst_decode_bin_dispose), (find_compatibles), (close_pad_link),
(try_to_link_1), (new_pad), (close_link), (type_found),
(gst_decode_bin_set_property), (gst_decode_bin_get_property),
(plugin_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
(gst_play_base_bin_class_init), (gst_play_base_bin_init),
(gst_play_base_bin_dispose), (rebuild_pipeline), (queue_overrun),
(gen_preroll_element), (no_more_pads), (new_stream),
(setup_source), (gst_play_base_bin_set_property),
(gst_play_base_bin_get_property), (gst_play_base_bin_change_state),
(gst_play_base_bin_add_element),
(gst_play_base_bin_remove_element),
(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
(gst_play_base_bin_unlink_stream),
(gst_play_base_bin_get_streaminfo):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
(gst_play_bin_class_init), (gst_play_bin_init),
(gst_play_bin_dispose), (gst_play_bin_set_property),
(gst_play_bin_get_property), (gen_video_element),
(gen_audio_element), (setup_sinks), (gst_play_bin_change_state),
(gst_play_bin_get_event_masks), (gst_play_bin_send_event),
(gst_play_bin_get_formats), (gst_play_bin_convert),
(gst_play_bin_get_query_types), (gst_play_bin_query),
(plugin_init):
* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
(gst_stream_info_get_type), (gst_stream_info_class_init),
(gst_stream_info_init), (gst_stream_info_new),
(gst_stream_info_dispose), (gst_stream_info_set_property),
(gst_stream_info_get_property):
* gst/playback/gststreaminfo.h:
* gst/playback/test.c: (gen_video_element), (gen_audio_element),
(main):
* gst/playback/test2.c: (main):
* gst/playback/test3.c: (update_scale), (main):
More playbin fixes. Added README. Do better element filtering.
Added base class to preroll media. Added test apps.
2004-07-07 16:53:55 +00:00