8000 Merge pull request #286 from cmehay/duplicate_parameters · stu-github/ffmpeg-python@2463340 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2463340

Browse files
authored
Merge pull request kkroening#286 from cmehay/duplicate_parameters
Duplicate parameters can be set in kwargs with an iterator
2 parents 78fb6cf + 2a7a2d7 commit 2463340

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

ffmpeg/_utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from past.builtins import basestring
44
import hashlib
55
import sys
6+
import collections
7+
68

79
if sys.version_info.major == 2:
810
# noinspection PyUnresolvedReferences,PyShadowingBuiltins
@@ -91,6 +93,12 @@ def convert_kwargs_to_cmd_line_args(kwargs):
9193
args = []
9294
for k in sorted(kwargs.keys()):
9395
v = kwargs[k]
96+
if isinstance(v, collections.Iterable) and not isinstance(v, str):
97+
for value in v:
98+
args.append('-{}'.format(k))
99+
if value is not None:
100+
args.append('{}'.format(value))
101+
continue
94102
args.append('-{}'.format(k))
95103
if v is not None:
96104
args.append('{}'.format(v))

ffmpeg/tests/test_ffmpeg.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import re
1010
import subprocess
1111

12+
1213
try:
1314
import mock # python 2
1415
except ImportError:
@@ -114,6 +115,10 @@ def test_stream_repr():
114115
dummy_out.label, dummy_out.node.short_hash
115116
)
116117

118+
def test_repeated_args():
119+
out_file = ffmpeg.input('dummy.mp4').output('dummy2.mp4', streamid=['0:0x101', '1:0x102'])
120+
assert out_file.get_args() == ['-i', 'dummy.mp4', '-streamid', '0:0x101', '-streamid', '1:0x102', 'dummy2.mp4']
121+
117122

118123
def test__get_args__simple():
119124
out_file = ffmpeg.input('dummy.mp4').output('dummy2.mp4')

0 commit comments

Comments
 (0)
0