|
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.
|