[FFmpeg-devel] libavfilter: avfilter_graph_parse2 is not preserving pad names
Rahul Lodha
rahullodhas at gmail.com
Tue Jul 14 16:51:16 EEST 2020
I wrote a code to mix two audio streams which is working. However,
somehow `avfilter_graph_parse2` is not preserving the pad names
For example, below is a filter spec
```
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";
```
Below is the code to parse and dump graph
```
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);
}
```
and below is the graph dump.
```
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) |
+----------------------+
```
As you can see, all the pad names a0, a1, etc gone and they are
replaced by `default`, Parsed_abuffersink_3 etc.
Is there any way to preserve names?
More information about the ffmpeg-devel
mailing list