/// <summary> /// Gets the media info. /// </summary> /// <param name="item">The item.</param> /// <param name="isoMount">The iso mount.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task{MediaInfoResult}.</returns> /// <exception cref="System.ArgumentNullException">inputPath /// or /// cache</exception> protected async Task <MediaInfoResult> GetMediaInfo(BaseItem item, IIsoMount isoMount, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var type = InputType.AudioFile; var inputPath = isoMount == null ? new[] { item.Path } : new[] { isoMount.MountedPath }; var video = item as Video; if (video != null) { inputPath = MediaEncoderHelpers.GetInputArgument(video, isoMount, out type); } return(await MediaEncoder.GetMediaInfo(inputPath, type, cancellationToken).ConfigureAwait(false)); }