mirror of
https://mirror.skon.top/https://github.com/FFmpeg/FFmpeg
synced 2026-04-20 21:00:41 +08:00
avformat/tee: fix multiple bsfs in tee
Since 155508c6e9 specifying multiple
bsfs for different streams was broken:
"[bsfs/a=h264_metadata:bsfs/v=h264_metadata]out.mp4|..."
This incorrectly only parsed the first bsfs specification. The reason
for this is that the dictionary is modified in the iterator, hence
invalidating the iterator. The simplest fix for this is to simply
iterate from the beginning in each loop given that the previous entry
is removed.
This commit is contained in:
@@ -197,7 +197,7 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave)
|
||||
PROCESS_OPTION("fifo_options",
|
||||
parse_slave_fifo_options(value, tee_slave), ;);
|
||||
entry = NULL;
|
||||
while ((entry = av_dict_get(options, "bsfs", entry, AV_DICT_IGNORE_SUFFIX))) {
|
||||
while ((entry = av_dict_get(options, "bsfs", NULL, AV_DICT_IGNORE_SUFFIX))) {
|
||||
/* trim out strlen("bsfs") characters from key */
|
||||
av_dict_set(&bsf_options, entry->key + 4, entry->value, 0);
|
||||
av_dict_set(&options, entry->key, NULL, 0);
|
||||
|
||||
Reference in New Issue
Block a user