add tests for edl

pull/2298/head
Mikael Finstad 2 years ago
parent a7f6b34975
commit fe7682590b
No known key found for this signature in database
GPG Key ID: 25AB36E3E81CBC26

File diff suppressed because it is too large Load Diff

@ -0,0 +1,14 @@
import { it, expect } from 'vitest';
import { readFixture } from './test/util';
import { parseEdlCmx3600 } from './edlFormats';
it('parseEdlCmx3600', async () => {
const fps = 30;
expect(await parseEdlCmx3600(await readFixture('edl/12_16 TL01 MUSIC.edl'), fps)).toMatchSnapshot();
expect(await parseEdlCmx3600(await readFixture('edl/070816_EG101_HEISTS_ROUGH_CUT_SOURCES_PART 1.edl'), fps)).toMatchSnapshot();
expect(await parseEdlCmx3600(await readFixture('edl/cmx3600_5994.edl'), fps)).toMatchSnapshot();
expect(await parseEdlCmx3600(await readFixture('edl/cmx3600.edl'), fps)).toMatchSnapshot();
expect(await parseEdlCmx3600(await readFixture('edl/pull001_201109_exr.edl'), fps)).toMatchSnapshot();
});

@ -1,16 +1,8 @@
import fs from 'node:fs/promises';
import { join, dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
import { it, describe, expect, test } from 'vitest'; import { it, describe, expect, test } from 'vitest';
import { parseSrtToSegments, formatSrt, parseYouTube, formatYouTube, parseMplayerEdl, parseXmeml, parseFcpXml, parseCsv, parseCsvTime, getFrameValParser, formatCsvFrames, getFrameCountRaw, parsePbf, parseDvAnalyzerSummaryTxt, parseCutlist, parseGpsLine } from './edlFormats'; import { parseSrtToSegments, formatSrt, parseYouTube, formatYouTube, parseMplayerEdl, parseXmeml, parseFcpXml, parseCsv, parseCsvTime, getFrameValParser, formatCsvFrames, getFrameCountRaw, parsePbf, parseDvAnalyzerSummaryTxt, parseCutlist, parseGpsLine } from './edlFormats';
import { readFixture, readFixtureBinary } from './test/util';
// eslint-disable-next-line no-underscore-dangle
const __dirname = dirname(fileURLToPath(import.meta.url));
const readFixture = async (name: string, encoding: BufferEncoding = 'utf8') => fs.readFile(join(__dirname, 'fixtures', name), encoding);
const readFixtureBinary = async (name: string) => fs.readFile(join(__dirname, 'fixtures', name), null);
const expectYouTube1 = [ const expectYouTube1 = [
{ start: 0, end: 1, name: '00:01 Test 1' }, { start: 0, end: 1, name: '00:01 Test 1' },
@ -177,16 +169,16 @@ it('parseMplayerEdl, starting at 0', async () => {
}); });
it('parses xmeml 1', async () => { it('parses xmeml 1', async () => {
expect(await parseXmeml(await readFixture('Final Cut Pro XMEML.xml'))).toMatchSnapshot(); expect(parseXmeml(await readFixture('Final Cut Pro XMEML.xml'))).toMatchSnapshot();
}); });
it('parses xmeml 2', async () => { it('parses xmeml 2', async () => {
expect(await parseXmeml(await readFixture('Final Cut Pro XMEML 2.xml'))).toMatchSnapshot(); expect(parseXmeml(await readFixture('Final Cut Pro XMEML 2.xml'))).toMatchSnapshot();
}); });
// see https://github.com/mifi/lossless-cut/issues/1195 // see https://github.com/mifi/lossless-cut/issues/1195
it('parses xmeml - with multiple tracks', async () => { it('parses xmeml - with multiple tracks', async () => {
expect(await parseXmeml(await readFixture('Final Cut Pro XMEML 3.xml'))).toMatchSnapshot(); expect(parseXmeml(await readFixture('Final Cut Pro XMEML 3.xml'))).toMatchSnapshot();
}); });
// see https://github.com/mifi/lossless-cut/issues/1195 // see https://github.com/mifi/lossless-cut/issues/1195

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1 @@
Taken from https://github.com/bradcordeiro/edl-genius/tree/master/test/edl_files

@ -0,0 +1,34 @@
TITLE: EDL Test SEQ
FCM: DROP FRAME
001 ACC112 V C 01:49:40:01 01:49:46:18 01:00:00:00 01:00:06:17
* FROM CLIP NAME: ACC112 WARBIRDS.NEW.01
* SOURCE FILE: ACC112 WARBIRDS
002 IMG_6348 V C 00:00:15:26 00:00:17:05 01:00:06:17 01:00:07:26
* FROM CLIP NAME: IMG_6348.NEW.01
* SOURCE FILE: IMG_6348
003 BOONE_SM V C 01:01:43:05 01:01:57:00 01:00:07:26 01:00:21:21
* FROM CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
* SOURCE FILE: BOONE SMITH ON CAMERA HOST_-720P
004 BOONE_SM V C 01:02:21:28 01:02:22:28 01:00:21:21 01:00:22:21
* FROM CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
* TO CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
* SOURCE FILE: BOONE SMITH ON CAMERA HOST_-720P
005 BOONE_SM V C 01:02:22:28 01:02:26:17 01:00:22:21 01:00:26:10
* FROM CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
* SOURCE FILE: BOONE SMITH ON CAMERA HOST_-720P
006 AQ100 V C 00:02:18:05 00:02:28:10 01:00:26:10 01:00:31:13
M2 AQ100 059.6 00:02:18:05
* TIMEWARP EFFECT AT SEQUENCE TC 01;00;26;10.
* FROM CLIP NAME: DTB RE EDIT - HD 720P VIDEO SHARING.NEW.01
* SOURCE FILE: DTB RE EDIT - HD 720P VIDEO SHARING
007 BR240 V C 09:18:30:13 09:18:38:13 01:00:31:13 01:00:39:12
M2 BR240 024.0 09:18:30:13
* FROM CLIP NAME: 00004.NEW.01
* SOURCE FILE: 00004
008 ACC112 V C 01:50:58:03 01:51:00:27 01:00:38:14 01:00:41:06
* FROM CLIP NAME: ACC112 WARBIRDS.NEW.01
* SOURCE FILE: ACC112 WARBIRDS
009 KIRA_PAS V C 01:01:25:14 01:01:32:07 01:00:40:25 01:00:47:15
M2 KIRA_PAS 024.0 01:01:25:14
* FROM CLIP NAME: KIRA PASTA.NEW.01
* SOURCE FILE: KIRA PASTA

@ -0,0 +1,34 @@
TITLE: EDL Test SEQ
FCM: DROP FRAME
001 ACC112 V C 01:49:40:02 01:49:46:36 01:00:00:00 01:00:06:34
* FROM CLIP NAME: ACC112 WARBIRDS.NEW.01
* SOURCE FILE: ACC112 WARBIRDS
002 IMG_6348 V C 00:00:15:52 00:00:17:10 01:00:06:34 01:00:07:52
* FROM CLIP NAME: IMG_6348.NEW.01
* SOURCE FILE: IMG_6348
003 BOONE_SM V C 01:01:43:10 01:01:57:00 01:00:07:52 01:00:21:42
* FROM CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
* SOURCE FILE: BOONE SMITH ON CAMERA HOST_-720P
004 BOONE_SM V C 01:02:21:56 01:02:22:56 01:00:21:42 01:00:22:42
* FROM CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
* TO CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
* SOURCE FILE: BOONE SMITH ON CAMERA HOST_-720P
005 BOONE_SM V C 01:02:22:56 01:02:26:34 01:00:22:42 01:00:26:20
* FROM CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
* SOURCE FILE: BOONE SMITH ON CAMERA HOST_-720P
006 AQ100 V C 00:02:18:10 00:02:28:20 01:00:26:20 01:00:31:26
M2 AQ100 059.6 00:02:18:05
* TIMEWARP EFFECT AT SEQUENCE TC 01;00;26;10.
* FROM CLIP NAME: DTB RE EDIT - HD 720P VIDEO SHARING.NEW.01
* SOURCE FILE: DTB RE EDIT - HD 720P VIDEO SHARING
007 BR240 V C 09:18:30:26 09:18:38:26 01:00:31:26 01:00:39:24
M2 BR240 024.0 09:18:30:13
* FROM CLIP NAME: 00004.NEW.01
* SOURCE FILE: 00004
008 ACC112 V C 01:50:58:06 01:51:00:54 01:00:38:28 01:00:41:12
* FROM CLIP NAME: ACC112 WARBIRDS.NEW.01
* SOURCE FILE: ACC112 WARBIRDS
009 KIRA_PAS V C 01:01:25:28 01:01:32:14 01:00:40:50 01:00:47:30
M2 KIRA_PAS 024.0 01:01:25:28
* FROM CLIP NAME: KIRA PASTA.NEW.01
* SOURCE FILE: KIRA PASTA

@ -0,0 +1,34 @@
TITLE: EDL Test SEQ
FCM: DROP FRAME
000001 ACC112 V C 01:49:40:01 01:49:46:18 01:00:00:00 01:00:06:17
*FROM CLIP NAME: ACC112 WARBIRDS.NEW.01
*SOURCE FILE: ACC112 WARBIRDS
000002 IMG_6348 V C 00:00:15:26 00:00:17:05 01:00:06:17 01:00:07:26
*FROM CLIP NAME: IMG_6348.NEW.01
*SOURCE FILE: IMG_6348
000003 BOONE_SMITH_ON_CAMERA_HOST_-720P V C 01:01:43:05 01:01:57:00 01:00:07:26 01:00:21:21
*FROM CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
*SOURCE FILE: BOONE SMITH ON CAMERA HOST_-720P
000004 BOONE_SMITH_ON_CAMERA_HOST_-720P V C 01:02:21:28 01:02:22:28 01:00:21:21 01:00:22:21
*FROM CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
*TO CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
*SOURCE FILE: BOONE SMITH ON CAMERA HOST_-720P
000005 BOONE_SMITH_ON_CAMERA_HOST_-720P V C 01:02:22:28 01:02:26:17 01:00:22:21 01:00:26:10
*FROM CLIP NAME: BOONE SMITH ON CAMERA HOST_-720P.NEW.01
*SOURCE FILE: BOONE SMITH ON CAMERA HOST_-720P
000006 AQ100 V C 00:02:18:05 00:02:28:10 01:00:26:10 01:00:31:13
M2 AQ100 059.6 00:02:18:05
*TIMEWARP EFFECT AT SEQUENCE TC 01;00;26;10.
*FROM CLIP NAME: DTB RE EDIT - HD 720P VIDEO SHARING.NEW.01
*SOURCE FILE: DTB RE EDIT - HD 720P VIDEO SHARING
000007 BR240 V C 09:18:30:13 09:18:38:13 01:00:31:13 01:00:39:12
M2 BR240 024.0 09:18:30:13
*FROM CLIP NAME: 00004.NEW.01
*SOURCE FILE: 00004
000008 ACC112 V C 01:50:58:03 01:51:00:27 01:00:38:14 01:00:41:06
*FROM CLIP NAME: ACC112 WARBIRDS.NEW.01
*SOURCE FILE: ACC112 WARBIRDS
000009 KIRA_PASTA V C 01:01:25:14 01:01:32:07 01:00:40:25 01:00:47:15
M2 KIRA_PASTA 024.0 01:01:25:14
*FROM CLIP NAME: KIRA PASTA.NEW.01
*SOURCE FILE: KIRA PASTA

@ -0,0 +1,8 @@
TITLE: pull001_201109_exr
FCM: NON-DROP FRAME
000001 A036C010_191203 V C 08:12:57:14 08:13:04:07 01:00:00:00 01:00:06:17
*009 0100
000002 A066C008_191219 V C 10:01:05:16 10:01:09:20 01:00:06:17 01:00:10:21
*076 0300
000003 A152C002_200208 V C 10:37:07:02 10:37:16:12 01:00:10:21 01:00:20:07
*102 0100

@ -0,0 +1,8 @@
WEBVTT
00:01.000 --> 00:04.000
- Never drink liquid nitrogen.
00:05.000 --> 00:09.000
- It will perforate your stomach.
- You could die.

@ -0,0 +1,9 @@
import fs from 'node:fs/promises';
import { join, dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
// eslint-disable-next-line no-underscore-dangle
const __dirname = dirname(fileURLToPath(import.meta.url));
export const readFixture = async (name: string, encoding: BufferEncoding = 'utf8') => fs.readFile(join(__dirname, 'fixtures', name), encoding);
export const readFixtureBinary = async (name: string) => fs.readFile(join(__dirname, 'fixtures', name), null);
Loading…
Cancel
Save