Skip to content

Commit b0bae80

Browse files
committed
Undo assumption that CFR output is identical to VFR output at the same framerate
1 parent a3c6e25 commit b0bae80

File tree

2 files changed

+12
-22
lines changed

2 files changed

+12
-22
lines changed

src/avisynth/avssources.cpp

+6-11
Original file line numberDiff line numberDiff line change
@@ -146,19 +146,14 @@ AvisynthVideoSource::AvisynthVideoSource(const char *SourceFile, int Track, FFMS
146146
VI.num_frames = VP->NumFrames;
147147
if (FPSNum > 0 && FPSDen > 0) {
148148
vsh::reduceRational(&FPSNum, &FPSDen);
149-
if (VI.fps_denominator != FPSDen || VI.fps_numerator != FPSNum) {
150-
VI.fps_denominator = FPSDen;
151-
VI.fps_numerator = FPSNum;
152-
if (VP->NumFrames > 1) {
153-
VI.num_frames = static_cast<int>((VP->LastTime - VP->FirstTime) * (1 + 1. / (VP->NumFrames - 1)) * FPSNum / FPSDen + 0.5);
154-
if (VI.num_frames < 1)
155-
VI.num_frames = 1;
156-
} else {
149+
VI.fps_denominator = FPSDen;
150+
VI.fps_numerator = FPSNum;
151+
if (VP->NumFrames > 1) {
152+
VI.num_frames = static_cast<int>((VP->LastTime - VP->FirstTime) * (1 + 1. / (VP->NumFrames - 1)) * FPSNum / FPSDen + 0.5);
153+
if (VI.num_frames < 1)
157154
VI.num_frames = 1;
158-
}
159155
} else {
160-
FPSNum = 0;
161-
FPSDen = 0;
156+
VI.num_frames = 1;
162157
}
163158
}
164159

src/vapoursynth/vapoursource4.cpp

+6-11
Original file line numberDiff line numberDiff line change
@@ -281,19 +281,14 @@ VSVideoSource4::VSVideoSource4(const char *SourceFile, int Track, FFMS_Index *In
281281

282282
if (FPSNum > 0 && FPSDen > 0) {
283283
vsh::reduceRational(&FPSNum, &FPSDen);
284-
if (VI[0].fpsDen != FPSDen || VI[0].fpsNum != FPSNum) {
285-
VI[0].fpsDen = FPSDen;
286-
VI[0].fpsNum = FPSNum;
287-
if (VP->NumFrames > 1) {
288-
VI[0].numFrames = static_cast<int>((VP->LastTime - VP->FirstTime) * (1 + 1. / (VP->NumFrames - 1)) * FPSNum / FPSDen + 0.5);
289-
if (VI[0].numFrames < 1)
290-
VI[0].numFrames = 1;
291-
} else {
284+
VI[0].fpsDen = FPSDen;
285+
VI[0].fpsNum = FPSNum;
286+
if (VP->NumFrames > 1) {
287+
VI[0].numFrames = static_cast<int>((VP->LastTime - VP->FirstTime) * (1 + 1. / (VP->NumFrames - 1)) * FPSNum / FPSDen + 0.5);
288+
if (VI[0].numFrames < 1)
292289
VI[0].numFrames = 1;
293-
}
294290
} else {
295-
FPSNum = 0;
296-
FPSDen = 0;
291+
VI[0].numFrames = 1;
297292
}
298293
}
299294

0 commit comments

Comments
 (0)