Skip to content

Commit

Permalink
Fix test_pipe()
Browse files Browse the repository at this point in the history
FFmpeg 5.x duplicates trimmed frames instead of removing them.
  • Loading branch information
xiota committed Dec 11, 2022
1 parent df129c7 commit 557ed8e
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions ffmpeg/tests/test_ffmpeg.py
Original file line number Diff line number Diff line change
Expand Up @@ -688,8 +688,8 @@ def test_pipe():
width = 32
height = 32
frame_size = width * height * 3 # 3 bytes for rgb24
frame_count = 10
start_frame = 2
frame_count = 15
start_frame = 3

out = (
ffmpeg.input(
Expand All @@ -716,7 +716,7 @@ def test_pipe():
'-i',
'pipe:0',
'-filter_complex',
'[0]trim=start_frame=2[s0]',
'[0]trim=start_frame={}[s0]'.format(start_frame),
'-map',
'[s0]',
'-f',
Expand All @@ -739,8 +739,19 @@ def test_pipe():
p.stdin.close()

out_data = p.stdout.read()
assert len(out_data) == frame_size * (frame_count - start_frame)
assert out_data == in_data[start_frame * frame_size :]

if start_frame > 0 and len(out_data) < len (in_data):
# ffmpeg 4.x removes trimmed frames
assert len(out_data) == frame_size * (frame_count - start_frame)
assert out_data == in_data[start_frame * frame_size :]
else:
# ffmpeg 5.x duplicates trimmed frames
assert len(out_data) == len(in_data)

for fn in range(0, start_frame):
assert out_data[fn*frame_size] == in_data[start_frame * frame_size]

assert out_data[start_frame * frame_size :] == in_data[start_frame * frame_size :]


def test__probe():
Expand Down

0 comments on commit 557ed8e

Please sign in to comment.