mirror of
https://github.com/immich-app/immich.git
synced 2024-12-11 11:42:19 +02:00
96 lines
2.3 KiB
TypeScript
96 lines
2.3 KiB
TypeScript
|
import { AudioStreamInfo, VideoFormat, VideoInfo, VideoStreamInfo } from '@app/domain';
|
||
|
|
||
|
const probeStubDefaultFormat: VideoFormat = {
|
||
|
formatName: 'mov,mp4,m4a,3gp,3g2,mj2',
|
||
|
formatLongName: 'QuickTime / MOV',
|
||
|
duration: 0,
|
||
|
};
|
||
|
|
||
|
const probeStubDefaultVideoStream: VideoStreamInfo[] = [
|
||
|
{ height: 1080, width: 1920, codecName: 'h265', codecType: 'video', frameCount: 100, rotation: 0 },
|
||
|
];
|
||
|
|
||
|
const probeStubDefaultAudioStream: AudioStreamInfo[] = [{ codecName: 'aac', codecType: 'audio' }];
|
||
|
|
||
|
const probeStubDefault: VideoInfo = {
|
||
|
format: probeStubDefaultFormat,
|
||
|
videoStreams: probeStubDefaultVideoStream,
|
||
|
audioStreams: probeStubDefaultAudioStream,
|
||
|
};
|
||
|
|
||
|
export const probeStub = {
|
||
|
noVideoStreams: Object.freeze<VideoInfo>({ ...probeStubDefault, videoStreams: [] }),
|
||
|
multipleVideoStreams: Object.freeze<VideoInfo>({
|
||
|
...probeStubDefault,
|
||
|
videoStreams: [
|
||
|
{
|
||
|
height: 1080,
|
||
|
width: 400,
|
||
|
codecName: 'h265',
|
||
|
codecType: 'video',
|
||
|
frameCount: 100,
|
||
|
rotation: 0,
|
||
|
},
|
||
|
{
|
||
|
height: 1080,
|
||
|
width: 400,
|
||
|
codecName: 'h7000',
|
||
|
codecType: 'video',
|
||
|
frameCount: 99,
|
||
|
rotation: 0,
|
||
|
},
|
||
|
],
|
||
|
}),
|
||
|
noHeight: Object.freeze<VideoInfo>({
|
||
|
...probeStubDefault,
|
||
|
videoStreams: [
|
||
|
{
|
||
|
height: 0,
|
||
|
width: 400,
|
||
|
codecName: 'h265',
|
||
|
codecType: 'video',
|
||
|
frameCount: 100,
|
||
|
rotation: 0,
|
||
|
},
|
||
|
],
|
||
|
}),
|
||
|
videoStream2160p: Object.freeze<VideoInfo>({
|
||
|
...probeStubDefault,
|
||
|
videoStreams: [
|
||
|
{
|
||
|
height: 2160,
|
||
|
width: 3840,
|
||
|
codecName: 'h264',
|
||
|
codecType: 'video',
|
||
|
frameCount: 100,
|
||
|
rotation: 0,
|
||
|
},
|
||
|
],
|
||
|
}),
|
||
|
videoStreamVertical2160p: Object.freeze<VideoInfo>({
|
||
|
...probeStubDefault,
|
||
|
videoStreams: [
|
||
|
{
|
||
|
height: 2160,
|
||
|
width: 3840,
|
||
|
codecName: 'h264',
|
||
|
codecType: 'video',
|
||
|
frameCount: 100,
|
||
|
rotation: 90,
|
||
|
},
|
||
|
],
|
||
|
}),
|
||
|
audioStreamMp3: Object.freeze<VideoInfo>({
|
||
|
...probeStubDefault,
|
||
|
audioStreams: [{ codecType: 'audio', codecName: 'aac' }],
|
||
|
}),
|
||
|
matroskaContainer: Object.freeze<VideoInfo>({
|
||
|
...probeStubDefault,
|
||
|
format: {
|
||
|
formatName: 'matroska,webm',
|
||
|
formatLongName: 'Matroska / WebM',
|
||
|
duration: 0,
|
||
|
},
|
||
|
}),
|
||
|
};
|