Skip to content

Commit d12c895

Browse files
committed
set stream frame_rate to fix tests
1 parent b6f45f6 commit d12c895

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

src/torchcodec/_core/Encoder.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,10 @@ void VideoEncoder::initializeEncoder(
833833

834834
// Set the stream time base to encode correct frame timestamps
835835
avStream_->time_base = avCodecContext_->time_base;
836+
// Set the stream frame rate to store correct frame durations for some
837+
// containers (webm, mkv)
838+
avStream_->r_frame_rate = avCodecContext_->framerate;
839+
836840
status = avcodec_parameters_from_context(
837841
avStream_->codecpar, avCodecContext_.get());
838842
TORCH_CHECK(

test/test_encoders.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,18 +1047,16 @@ def test_video_encoder_against_ffmpeg_cli(
10471047

10481048
# Check that video metadata is the same
10491049
if method == "to_file":
1050-
# mkv container format handles frame_rate differently, so we skip it here
1051-
if format != "mkv":
1052-
fields = ["duration", "duration_ts", "r_frame_rate", "nb_frames"]
1053-
ffmpeg_metadata = self._get_video_metadata(
1054-
ffmpeg_encoded_path,
1055-
fields=fields,
1056-
)
1057-
encoder_metadata = self._get_video_metadata(
1058-
encoder_output_path,
1059-
fields=fields,
1060-
)
1061-
assert ffmpeg_metadata == encoder_metadata
1050+
fields = ["duration", "duration_ts", "r_frame_rate", "nb_frames"]
1051+
ffmpeg_metadata = self._get_video_metadata(
1052+
ffmpeg_encoded_path,
1053+
fields=fields,
1054+
)
1055+
encoder_metadata = self._get_video_metadata(
1056+
encoder_output_path,
1057+
fields=fields,
1058+
)
1059+
assert ffmpeg_metadata == encoder_metadata
10621060

10631061
# Check that frame timestamps and duration are the same
10641062
ffmpeg_frames_info = self._get_frames_info(ffmpeg_encoded_path)

0 commit comments

Comments
 (0)