})
}
+function sortByResolutionDesc (fileA: MVideoFile, fileB: MVideoFile) {
+ if (fileA.resolution < fileB.resolution) return 1
+ if (fileA.resolution === fileB.resolution) return 0
+ return -1
+}
+
function videoFilesModelToFormattedJSON (
model: MVideo | MStreamingPlaylistVideo,
baseUrlHttp: string,
): VideoFile[] {
const video = extractVideo(model)
- return videoFiles
+ return [ ...videoFiles ]
+ .sort(sortByResolutionDesc)
.map(videoFile => {
return {
resolution: {
metadataUrl: video.getVideoFileMetadataUrl(videoFile, baseUrlHttp)
} as VideoFile
})
- .sort((a, b) => {
- if (a.resolution.id < b.resolution.id) return 1
- if (a.resolution.id === b.resolution.id) return 0
- return -1
- })
}
function addVideoFilesInAPAcc (
baseUrlWs: string,
files: MVideoFile[]
) {
- for (const file of files) {
+ const sortedFiles = [ ...files ].sort(sortByResolutionDesc)
+
+ for (const file of sortedFiles) {
acc.push({
type: 'Link',
mediaType: MIMETYPES.VIDEO.EXT_MIMETYPE[file.extname] as any,