X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fschannel.c;h=637ec96d2376721dc6ffd7a1dac563bd6b522456;hb=012d66921278f7271a323a50c81bb9e2d6ce6aeb;hp=70bb7e182797ba1a1ee76d8e2c02f1e934cf25a5;hpb=ac30e8631fb7fc29e2954e9bfca734d9aeaa642b;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/schannel.c b/libchimara/schannel.c index 70bb7e1..637ec96 100644 --- a/libchimara/schannel.c +++ b/libchimara/schannel.c @@ -114,18 +114,15 @@ static void on_type_found(GstElement *typefind, guint probability, GstCaps *caps, schanid_t s) { gchar *type = gst_caps_to_string(caps); - if(strcmp(type, "application/ogg") == 0) - { + if(strcmp(type, "application/ogg") == 0) { s->demux = gst_element_factory_make("oggdemux", NULL); s->decode = gst_element_factory_make("vorbisdec", NULL); - if(!s->demux || !s->decode) - { + if(!s->demux || !s->decode) { WARNING(_("Could not create one or more GStreamer elements")); goto finally; } gst_bin_add_many(GST_BIN(s->pipeline), s->demux, s->decode, NULL); - if(!gst_element_link(s->typefind, s->demux) || !gst_element_link(s->decode, s->convert)) - { + if(!gst_element_link(s->typefind, s->demux) || !gst_element_link(s->decode, s->convert)) { WARNING(_("Could not link GStreamer elements")); goto finally; } @@ -133,24 +130,29 @@ on_type_found(GstElement *typefind, guint probability, GstCaps *caps, schanid_t demuxer doesn't know what source pads it will have until it starts demuxing the stream */ g_signal_connect(s->demux, "pad-added", G_CALLBACK(on_ogg_demuxer_pad_added), s); - } - else if(strcmp(type, "audio/x-aiff") == 0) - { + } else if(strcmp(type, "audio/x-aiff") == 0) { s->decode = gst_element_factory_make("aiffparse", NULL); - if(!s->decode) - { + if(!s->decode) { WARNING(_("Could not create 'aiffparse' GStreamer element")); goto finally; } gst_bin_add(GST_BIN(s->pipeline), s->decode); - if(!gst_element_link_many(s->typefind, s->decode, s->convert, NULL)) - { + if(!gst_element_link_many(s->typefind, s->decode, s->convert, NULL)) { WARNING(_("Could not link GStreamer elements")); goto finally; } - } - else - { + } else if(strcmp(type, "audio/x-mod") == 0) { + s->decode = gst_element_factory_make("modplug", NULL); + if(!s->decode) { + WARNING(_("Could not create 'modplug' GStreamer element")); + goto finally; + } + gst_bin_add(GST_BIN(s->pipeline), s->decode); + if(!gst_element_link_many(s->typefind, s->decode, s->convert, NULL)) { + WARNING(_("Could not link GStreamer elements")); + goto finally; + } + } else { WARNING_S(_("Unexpected audio type in blorb"), type); }