GStreamer vorbis编码器警告(通道位置无效)超过8个通道

GStreamer vorbis编码器警告(通道位置无效)超过8个通道,gstreamer,oggvorbis,Gstreamer,Oggvorbis,我有一个管道appsrc->rawaudioparse->audioconvert->vorbisenc->oggmux->filesink。 在appsrc中,我将数据推送到缓冲区。数据有16个通道,并且在具有交错布局(ch1、ch2、ch3、…、ch16、ch1、ch2、…、ch16)的浮点阵列中rawaudioparse属性包括: g_object_set(G_OBJECT(parser) , "pcm-format", 28, // f32le: GST_AUDIO_FORMAT_F32

我有一个管道
appsrc->rawaudioparse->audioconvert->vorbisenc->oggmux->filesink
。 在appsrc中,我将数据推送到缓冲区。数据有16个通道,并且在具有交错布局(ch1、ch2、ch3、…、ch16、ch1、ch2、…、ch16)的浮点阵列中rawaudioparse属性包括:

g_object_set(G_OBJECT(parser) , "pcm-format", 28, // f32le: GST_AUDIO_FORMAT_F32LE
                                "num-channels", 16,
                                "sample-rate", 100,
                                "interleaved", TRUE,
                                 NULL);
管道似乎运行良好,但我收到一个令我担忧的警告。仅当我将通道数设置为8个以上时,此警告才会出现

** (encoder:3785): WARNING **: 07:56:10.576: Invalid channel positions.
rawaudioparse中有一个名为通道位置的属性,但我不知道如何设置它

是否有人知道此警告存在于8个以上频道的原因以及如何修复它?

检查
GstAudioChannelPosition

因为对于如此多的通道,位置不再有意义,我会尝试添加到您的
g_对象集

"channel-positions", GST_AUDIO_CHANNEL_POSITION_NONE,
我想知道,如果你设置的频道数高于8,为什么它不会自动设置

如果警告仍然存在,我将仔细检查商定的元素的上限。如果已设置,
通道掩码
应为
0x0


除此之外,该警告只是告诉您有一个频道位置集,但与格式的其余部分不相加,可能会被忽略(这与预先告诉它没有位置相同)。

谢谢。当我设置“通道位置”:GST\u AUDIO\u channel\u position\u NONE时,我点击了错误“Segmentation fault(core dumped)”,可能它想要一个指向该变量的指针。仔细看看这些文件。当有疑问时,请看一眼来源。