You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02: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