( metadata: VideoMetadata, options: VideoProcessingOptions, sourceH264Level: number | null, )
| 1077 | } |
| 1078 | |
| 1079 | function needsVideoTranscode( |
| 1080 | metadata: VideoMetadata, |
| 1081 | options: VideoProcessingOptions, |
| 1082 | sourceH264Level: number | null, |
| 1083 | ): boolean { |
| 1084 | const maxWidth = options.maxWidth ?? DEFAULT_OPTIONS.maxWidth; |
| 1085 | const maxHeight = options.maxHeight ?? DEFAULT_OPTIONS.maxHeight; |
| 1086 | return ( |
| 1087 | metadata.width > maxWidth || |
| 1088 | metadata.height > maxHeight || |
| 1089 | metadata.videoCodec !== "h264" || |
| 1090 | (sourceH264Level !== null && |
| 1091 | sourceH264Level > pickMobileSafeH264Level(metadata, options).value) |
| 1092 | ); |
| 1093 | } |
| 1094 | |
| 1095 | function needsAudioTranscode(metadata: VideoMetadata): boolean { |
| 1096 | return Boolean(metadata.audioCodec && metadata.audioCodec !== "aac"); |
no test coverage detected