2

我想使用 udpsrc 元素运行音频管道。我将设置 udpsrc 的上限(功能),例如 gst-launch-0.10 -vvv udpsrc multicast-iface=eth0 uri=udp://239.255.255.6:25012 caps= "application/x-rtp, media=(字符串)音频,有效载荷=(int)96,时钟速率=(int)16000,编码名称=(字符串)MPEG4-GENERIC,流类型=(字符串)5,profile-level-id=(字符串)15,模式=(string)AAC-hbr,config=(string)1408,sizelength=(string)13, indexlength=(string)3,indexdeltalength=(string)3" 在我使用的程序中设置这个上限

g_object_set(G_OBJECT(Source),"caps",gst_caps_new_simple ("application/x-rtp",
                    "media", G_TYPE_STRING, "audio",
                    "payload",G_TYPE_INT,96,
                    "clock-rate", G_TYPE_INT, 16000,
                    "encoding-name", G_TYPE_STRING,"MPEG4-GENERIC",
                    "streamtype",G_TYPE_STRING,"5",
                    "profile-level-id", G_TYPE_STRING,"15",
                    "mode",G_TYPE_STRING,"AAC-hbr",
                    "config",G_TYPE_STRING,"1408",
                    "sizelength",G_TYPE_STRING,"13",
                    "indexlength",G_TYPE_STRING,"3"
                    "indexdeltalength",G_TYPE_STRING,"3",
                    NULL),NULL);

但它显示了一个分段错误,所以请尽快告诉我该怎么办?......

4

1 回答 1

1

代码看起来不错(尽管您泄漏了上限)。要修复泄漏,请执行以下操作:

GstCaps *caps = gst_caps_new_simple( ....);
g_object_set(source, "caps", caps, NULL);
gst_caps_unref(caps);

要弄清楚为什么它会在 gdb 下运行应用程序时出现段错误:

G_DEBUG="fatal_warnings" gdb --args ./my-app <args>

在 gdb 内部“运行”,当它崩溃时输入“bt”以显示回溯。

于 2012-06-05T09:09:11.957 回答