From: <ren...@us...> - 2008-01-29 20:12:27
|
Revision: 903 http://gmyth.svn.sourceforge.net/gmyth/?rev=903&view=rev Author: renatofilho Date: 2008-01-29 12:12:30 -0800 (Tue, 29 Jan 2008) Log Message: ----------- implemente audio-rate arg Modified Paths: -------------- trunk/gmyth-stream/gmencoder/src/gmencoder.c Modified: trunk/gmyth-stream/gmencoder/src/gmencoder.c =================================================================== --- trunk/gmyth-stream/gmencoder/src/gmencoder.c 2008-01-29 18:40:32 UTC (rev 902) +++ trunk/gmyth-stream/gmencoder/src/gmencoder.c 2008-01-29 20:12:30 UTC (rev 903) @@ -311,17 +311,46 @@ goto error; } - /* - * if (rate > 0) { g_object_set (G_OBJECT (aencode), "bitrate", 32, - * NULL); } - */ + gst_bin_add_many(GST_BIN(abin), aqueue, aconvert, aencode, aqueue_src, NULL); - if (gst_element_link_many(aqueue, aconvert, aencode, aqueue_src, NULL) - == FALSE) { + + if (!gst_element_link (aqueue, aconvert)) + { g_warning("Not Link audio elements"); + goto error; } + + if (rate > 0) { + GstCaps *caps; + + caps = gst_caps_new_simple ("audio/x-raw-int", + "rate", G_TYPE_INT, rate, NULL); + if (!gst_element_link_filtered (aconvert, aencode, caps)) + { + gst_caps_unref (caps); + g_warning("Not link rate filter"); + goto error; + } + + gst_caps_unref (caps); + } + else + { + if (!gst_element_link (aconvert, aencode)) + { + g_warning ("Fail to link audio elements"); + goto error; + } + } + + + if (!gst_element_link (aencode, aqueue_src)) + { + g_warning("Not Link audio elements"); + goto error; + } // TODO: apply audio rate // ghost pad the audio bin @@ -1021,8 +1050,10 @@ err_str = g_strdup_printf("Error [%d] %s (%s)", error->code, error->message, debug); priv->ready = FALSE; + /* g_signal_emit(user_data, g_mencoder_signals[ERROR], 0, err_str); + */ g_free(err_str); g_clear_error(&error); g_free(debug); @@ -1076,7 +1107,8 @@ } sink_pad = gst_element_get_pad(sink_element, "sink"); - gst_pad_link(pad, sink_pad); + if (!gst_pad_is_linked (sink_pad)) + gst_pad_link(pad, sink_pad); gst_object_unref(sink_element); gst_object_unref(sink_pad); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |