diff options
Diffstat (limited to 'MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs')
| -rw-r--r-- | MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs b/MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs index c2cef4978f..de6353c4c1 100644 --- a/MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs +++ b/MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs @@ -66,10 +66,22 @@ namespace MediaBrowser.Controller.MediaEncoding /// <summary> /// Gets a value indicating whether the configured Vaapi device supports vulkan drm format modifier. /// </summary> + /// <value><c>true</c> if the Vaapi device supports vulkan drm format modifier, <c>false</c> otherwise.</value> + bool IsVaapiDeviceSupportVulkanDrmModifier { get; } + + /// <summary> + /// Gets a value indicating whether the configured Vaapi device supports vulkan drm interop via dma-buf. + /// </summary> /// <value><c>true</c> if the Vaapi device supports vulkan drm interop, <c>false</c> otherwise.</value> bool IsVaapiDeviceSupportVulkanDrmInterop { get; } /// <summary> + /// Gets a value indicating whether av1 decoding is available via VideoToolbox. + /// </summary> + /// <value><c>true</c> if the av1 is available via VideoToolbox, <c>false</c> otherwise.</value> + bool IsVideoToolboxAv1DecodeAvailable { get; } + + /// <summary> /// Whether given encoder codec is supported. /// </summary> /// <param name="encoder">The encoder.</param> @@ -105,6 +117,13 @@ namespace MediaBrowser.Controller.MediaEncoding bool SupportsFilterWithOption(FilterOptionType option); /// <summary> + /// Whether the bitstream filter is supported with the given option. + /// </summary> + /// <param name="option">The option.</param> + /// <returns><c>true</c> if the bitstream filter is supported, <c>false</c> otherwise.</returns> + bool SupportsBitStreamFilterWithOption(BitStreamFilterOptionType option); + + /// <summary> /// Extracts the audio image. /// </summary> /// <param name="path">The path.</param> @@ -149,9 +168,11 @@ namespace MediaBrowser.Controller.MediaEncoding /// <param name="maxWidth">The maximum width.</param> /// <param name="interval">The interval.</param> /// <param name="allowHwAccel">Allow for hardware acceleration.</param> + /// <param name="enableHwEncoding">Use hardware mjpeg encoder.</param> /// <param name="threads">The input/output thread count for ffmpeg.</param> /// <param name="qualityScale">The qscale value for ffmpeg.</param> /// <param name="priority">The process priority for the ffmpeg process.</param> + /// <param name="enableKeyFrameOnlyExtraction">Whether to only extract key frames.</param> /// <param name="encodingHelper">EncodingHelper instance.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Directory where images where extracted. A given image made before another will always be named with a lower number.</returns> @@ -163,9 +184,11 @@ namespace MediaBrowser.Controller.MediaEncoding int maxWidth, TimeSpan interval, bool allowHwAccel, + bool enableHwEncoding, int? threads, int? qualityScale, ProcessPriorityClass? priority, + bool enableKeyFrameOnlyExtraction, EncodingHelper encodingHelper, CancellationToken cancellationToken); @@ -219,14 +242,8 @@ namespace MediaBrowser.Controller.MediaEncoding /// <summary> /// Sets the path to find FFmpeg. /// </summary> - void SetFFmpegPath(); - - /// <summary> - /// Updates the encoder path. - /// </summary> - /// <param name="path">The path.</param> - /// <param name="pathType">The type of path.</param> - void UpdateEncoderPath(string path, string pathType); + /// <returns>bool indicates whether a valid ffmpeg is found.</returns> + bool SetFFmpegPath(); /// <summary> /// Gets the primary playlist of .vob files. @@ -244,6 +261,21 @@ namespace MediaBrowser.Controller.MediaEncoding IReadOnlyList<string> GetPrimaryPlaylistM2tsFiles(string path); /// <summary> + /// Gets the input path argument from <see cref="EncodingJobInfo"/>. + /// </summary> + /// <param name="state">The <see cref="EncodingJobInfo"/>.</param> + /// <returns>The input path argument.</returns> + string GetInputPathArgument(EncodingJobInfo state); + + /// <summary> + /// Gets the input path argument. + /// </summary> + /// <param name="path">The item path.</param> + /// <param name="mediaSource">The <see cref="MediaSourceInfo"/>.</param> + /// <returns>The input path argument.</returns> + string GetInputPathArgument(string path, MediaSourceInfo mediaSource); + + /// <summary> /// Generates a FFmpeg concat config for the source. /// </summary> /// <param name="source">The <see cref="MediaSourceInfo"/>.</param> |
