1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using System;
- using System.Collections.Generic;
- using System.Runtime.Intrinsics.X86;
- using MediaBrowser.Model.Dto;
- namespace MediaBrowser.Controller.Entities;
- /// <summary>
- /// Compare MediaSource of the same file by Video width <see cref="IComparer{T}" />.
- /// </summary>
- public class MediaSourceWidthComparator : IComparer<MediaSourceInfo>
- {
- /// <inheritdoc />
- public int Compare(MediaSourceInfo? x, MediaSourceInfo? y)
- {
- if (x is null && y is null)
- {
- return 0;
- }
- if (x is null)
- {
- return -1;
- }
- if (y is null)
- {
- return 1;
- }
- if (string.Equals(x.Path, y.Path, StringComparison.OrdinalIgnoreCase))
- {
- if (x.VideoStream is null && y.VideoStream is null)
- {
- return 0;
- }
- if (x.VideoStream is null)
- {
- return -1;
- }
- if (y.VideoStream is null)
- {
- return 1;
- }
- var xWidth = x.VideoStream.Width ?? 0;
- var yWidth = y.VideoStream.Width ?? 0;
- return xWidth - yWidth;
- }
- return 0;
- }
- }
|