mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-09-26 07:45:34 +00:00
fix(export): harden edited-track filter validation
This commit is contained in:
@@ -54,5 +54,14 @@ describe("buildEditedTrackSourceAudioFilter", () => {
|
||||
expect(
|
||||
buildEditedTrackSourceAudioFilter([{ startMs: 0, endMs: 2_000, speed: 1 }], 0.4),
|
||||
).toBeNull();
|
||||
expect(
|
||||
buildEditedTrackSourceAudioFilter([{ startMs: -100, endMs: 2_000, speed: 1 }], 44_100),
|
||||
).toBeNull();
|
||||
expect(
|
||||
buildEditedTrackSourceAudioFilter(
|
||||
[{ startMs: 0, endMs: 2_000, speed: Number.MAX_SAFE_INTEGER }],
|
||||
44_100,
|
||||
),
|
||||
).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -190,7 +190,12 @@ export function buildEditedTrackSourceAudioFilter(
|
||||
let hasInvalidSegment = false;
|
||||
|
||||
segments.forEach((segment, index) => {
|
||||
if (!Number.isFinite(segment.startMs) || !Number.isFinite(segment.endMs)) {
|
||||
if (
|
||||
!Number.isFinite(segment.startMs) ||
|
||||
!Number.isFinite(segment.endMs) ||
|
||||
segment.startMs < 0 ||
|
||||
segment.endMs < 0
|
||||
) {
|
||||
hasInvalidSegment = true;
|
||||
return;
|
||||
}
|
||||
@@ -214,7 +219,7 @@ export function buildEditedTrackSourceAudioFilter(
|
||||
|
||||
if (Math.abs(speed - 1) > 0.0001) {
|
||||
const adjustedSampleRate = Math.round(normalizedSourceSampleRate * speed);
|
||||
if (adjustedSampleRate < 1) {
|
||||
if (!Number.isSafeInteger(adjustedSampleRate) || adjustedSampleRate < 1) {
|
||||
hasInvalidSegment = true;
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user