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:
parent
64fce7202c
commit
f744584f71
1 changed files with 1 additions and 1 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue