gst/playback/: New decodebin2 element.

Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_get_type),
(_gst_boolean_accumulator), (gst_decode_bin_class_init),
(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
(gst_decode_bin_init), (gst_decode_bin_dispose),
(gst_decode_bin_finalize), (gst_decode_bin_set_property),
(gst_decode_bin_get_property), (gst_decode_bin_set_caps),
(gst_decode_bin_get_caps), (gst_decode_bin_autoplug_continue),
(gst_decode_bin_autoplug_sort), (analyze_new_pad), (connect_pad),
(connect_element), (expose_pad), (type_found),
(pad_added_group_cb), (pad_removed_group_cb),
(no_more_pads_group_cb), (pad_added_cb), (pad_removed_cb),
(no_more_pads_cb), (find_compatibles), (is_demuxer_element),
(are_raw_caps), (multi_queue_overrun_cb),
(multi_queue_underrun_cb), (gst_decode_group_new),
(get_current_group), (group_demuxer_event_probe),
(gst_decode_group_control_demuxer_pad),
(gst_decode_group_control_source_pad),
(gst_decode_group_check_if_blocked),
(gst_decode_group_check_if_drained), (gst_decode_group_expose),
(gst_decode_group_hide), (gst_decode_group_free),
(gst_decode_group_set_complete), (source_pad_blocked_cb),
(source_pad_event_probe), (gst_decode_pad_new), (add_fakesink),
(remove_fakesink), (find_sink_pad), (gst_decode_bin_change_state),
(plugin_init):
New decodebin2 element.
Closes #370092
* gst/playback/gstplay-marshal.list:
Added marshallers for new signals in decodebin2
* gst/playback/gstplaybasebin.c: (setup_subtitle), (make_decoder):
Use decodebin2 if *and only if* the USE_DECODEBIN2 environment variable
is set.
This commit is contained in:
Edward Hervey 2006-11-28 14:40:39 +00:00
parent ce6c9ab620
commit b8423f254c
5 changed files with 1870 additions and 4 deletions

View file

@ -1,3 +1,38 @@
2006-11-28 Edward Hervey <edward@fluendo.com>
* gst/playback/Makefile.am:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_get_type),
(_gst_boolean_accumulator), (gst_decode_bin_class_init),
(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
(gst_decode_bin_init), (gst_decode_bin_dispose),
(gst_decode_bin_finalize), (gst_decode_bin_set_property),
(gst_decode_bin_get_property), (gst_decode_bin_set_caps),
(gst_decode_bin_get_caps), (gst_decode_bin_autoplug_continue),
(gst_decode_bin_autoplug_sort), (analyze_new_pad), (connect_pad),
(connect_element), (expose_pad), (type_found),
(pad_added_group_cb), (pad_removed_group_cb),
(no_more_pads_group_cb), (pad_added_cb), (pad_removed_cb),
(no_more_pads_cb), (find_compatibles), (is_demuxer_element),
(are_raw_caps), (multi_queue_overrun_cb),
(multi_queue_underrun_cb), (gst_decode_group_new),
(get_current_group), (group_demuxer_event_probe),
(gst_decode_group_control_demuxer_pad),
(gst_decode_group_control_source_pad),
(gst_decode_group_check_if_blocked),
(gst_decode_group_check_if_drained), (gst_decode_group_expose),
(gst_decode_group_hide), (gst_decode_group_free),
(gst_decode_group_set_complete), (source_pad_blocked_cb),
(source_pad_event_probe), (gst_decode_pad_new), (add_fakesink),
(remove_fakesink), (find_sink_pad), (gst_decode_bin_change_state),
(plugin_init):
New decodebin2 element.
Closes #370092
* gst/playback/gstplay-marshal.list:
Added marshallers for new signals in decodebin2
* gst/playback/gstplaybasebin.c: (setup_subtitle), (make_decoder):
Use decodebin2 if *and only if* the USE_DECODEBIN2 environment variable
is set.
2006-11-28 Wim Taymans <wim@fluendo.com>
* gst/playback/gstplaybasebin.c: (setup_source),

View file

@ -7,7 +7,7 @@ built_headers = gstplay-marshal.h
plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@
plugin_LTLIBRARIES = libgstplaybin.la libgstdecodebin.la
plugin_LTLIBRARIES = libgstplaybin.la libgstdecodebin.la libgstdecodebin2.la
libgstplaybin_la_SOURCES = \
gstplaybin.c \
@ -26,6 +26,12 @@ libgstdecodebin_la_CFLAGS = $(GST_CFLAGS)
libgstdecodebin_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstdecodebin_la_LIBADD = $(GST_LIBS)
libgstdecodebin2_la_SOURCES = gstdecodebin2.c
nodist_libgstdecodebin2_la_SOURCES = $(built_sources)
libgstdecodebin2_la_CFLAGS = $(GST_CFLAGS)
libgstdecodebin2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstdecodebin2_la_LIBADD = $(GST_LIBS)
noinst_HEADERS = \
gstplaybasebin.h \
gststreaminfo.h \

1818
gst/playback/gstdecodebin2.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,2 +1,3 @@
BOOLEAN:OBJECT,OBJECT
BOOLEAN:OBJECT
VOID:OBJECT,BOOLEAN
BOOLEAN:OBJECT,POINTER

View file

@ -1317,7 +1317,10 @@ setup_subtitle (GstPlayBaseBin * play_base_bin, gchar * sub_uri)
if (!source)
goto unknown_uri;
subdecodebin = gst_element_factory_make ("decodebin", "subtitle-decoder");
if (g_getenv ("USE_DECODEBIN2"))
subdecodebin = gst_element_factory_make ("decodebin2", "subtitle-decoder");
else
subdecodebin = gst_element_factory_make ("decodebin", "subtitle-decoder");
g_signal_connect (subdecodebin, "element-added",
G_CALLBACK (decodebin_element_added_cb), play_base_bin);
g_signal_connect (subdecodebin, "element-removed",
@ -1728,7 +1731,10 @@ make_decoder (GstPlayBaseBin * play_base_bin)
GstElement *decoder;
/* now create the decoder element */
decoder = gst_element_factory_make ("decodebin", NULL);
if (g_getenv ("USE_DECODEBIN2"))
decoder = gst_element_factory_make ("decodebin2", NULL);
else
decoder = gst_element_factory_make ("decodebin", NULL);
if (!decoder)
goto no_decodebin;