libavfilter: avfilter_graph_parse2 не сохраняет имена контактных площадок - PullRequest
0 голосов
/ 14 июля 2020

Я написал код для микширования двух звуковых потоков, который работает. Однако каким-то образом avfilter_graph_parse2 не сохраняет имена пэдов - есть ли способ сохранить имена пэдов.

Например, ниже показан фильтр spe c

filter_spec = "abuffer=time_base=1/48000:sample_rate=48000:sample_fmt=fltp:channel_layout=0x3[a0] ;
 abuffer=time_base=1/48000:sample_rate=48000:sample_fmt=fltp:channel_layout=0x3 [a1]; 
 [a0] [a1] amix=inputs=2, abuffersink";

Ниже код для синтаксического анализа и дампа графика

if ((ret = avfilter_graph_parse2(filter_graph, filter_spec, &inputs, &outputs)) < 0) {
                av_log(NULL, AV_LOG_ERROR, "avfilter_graph_parse_ptr failed: %d\n", ret);
        }

        if ((ret = avfilter_graph_config(filter_graph, NULL)) < 0) {
                av_log(NULL, AV_LOG_ERROR, "avfilter_graph_config failed\n");
        }

char *g = avfilter_graph_dump(filter_graph, NULL);
        if(g) {
                av_log(NULL, AV_LOG_ERROR, "Graph: %s\n", g);
                av_free(g);
        }

, а ниже - дамп графика.

Graph: +------------------+
| Parsed_abuffer_0 |default--[48000Hz fltp:stereo]--Parsed_amix_2:input0
|    (abuffer)     |
+------------------+

+------------------+
| Parsed_abuffer_1 |default--[48000Hz fltp:stereo]--Parsed_amix_2:input1
|    (abuffer)     |
+------------------+

                                                       +---------------+
Parsed_abuffer_0:default--[48000Hz fltp:stereo]--input0| Parsed_amix_2 |default--[48000Hz fltp:stereo]--Parsed_abuffersink_3:default
Parsed_abuffer_1:default--[48000Hz fltp:stereo]--input1|    (amix)     |
                                                       +---------------+

                                                     +----------------------+
Parsed_amix_2:default--[48000Hz fltp:stereo]--default| Parsed_abuffersink_3 |
                                                     |    (abuffersink)     |
                                                     +----------------------+



Как видите, все имена площадок a0, a1, et c пропали и они заменяются на default, Parsed_abuffersink_3 et c.

Есть ли способ сохранить имена?

...