Browse Source

fix copy codec when transcoding is disabled (#636)

pull/638/head
Jason Dove 4 years ago committed by GitHub
parent
commit
a1d9d6790e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      ErsatzTV.Core/FFmpeg/FFmpegLibraryProcessService.cs
  2. 1
      ErsatzTV.FFmpeg/Decoder/AvailableDecoders.cs
  3. 2
      ErsatzTV.FFmpeg/Encoder/AvailableEncoders.cs
  4. 2
      ErsatzTV.FFmpeg/Format/AudioFormat.cs
  5. 1
      ErsatzTV.FFmpeg/Format/VideoFormat.cs

9
ErsatzTV.Core/FFmpeg/FFmpegLibraryProcessService.cs

@ -94,12 +94,13 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
} }
// TODO: need formats for these codecs // TODO: need formats for these codecs
string videoFormat = channel.FFmpegProfile.VideoCodec switch string videoFormat = playbackSettings.VideoCodec switch
{ {
"libx265" or "hevc_nvenc" or "hevc_qsv" or "hevc_vaapi" or "hevc_videotoolbox" => VideoFormat.Hevc, "libx265" or "hevc_nvenc" or "hevc_qsv" or "hevc_vaapi" or "hevc_videotoolbox" => VideoFormat.Hevc,
"libx264" or "h264_nvenc" or "h264_qsv" or "h264_vaapi" or "h264_videotoolbox" => VideoFormat.H264, "libx264" or "h264_nvenc" or "h264_qsv" or "h264_vaapi" or "h264_videotoolbox" => VideoFormat.H264,
"mpeg2video" => VideoFormat.Mpeg2Video, "mpeg2video" => VideoFormat.Mpeg2Video,
_ => throw new ArgumentOutOfRangeException($"unexpected video codec {channel.FFmpegProfile.VideoCodec}") "copy" => VideoFormat.Copy,
_ => throw new ArgumentOutOfRangeException($"unexpected video codec {playbackSettings.VideoCodec}")
}; };
HardwareAccelerationMode hwAccel = playbackSettings.HardwareAcceleration switch HardwareAccelerationMode hwAccel = playbackSettings.HardwareAcceleration switch
@ -142,8 +143,8 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
playbackSettings.VideoBufferSize, playbackSettings.VideoBufferSize,
playbackSettings.VideoTrackTimeScale, playbackSettings.VideoTrackTimeScale,
playbackSettings.Deinterlace, playbackSettings.Deinterlace,
channel.FFmpegProfile.AudioCodec, playbackSettings.AudioCodec,
channel.FFmpegProfile.AudioChannels, playbackSettings.AudioChannels,
playbackSettings.AudioBitrate, playbackSettings.AudioBitrate,
playbackSettings.AudioBufferSize, playbackSettings.AudioBufferSize,
playbackSettings.AudioSampleRate, playbackSettings.AudioSampleRate,

1
ErsatzTV.FFmpeg/Decoder/AvailableDecoders.cs

@ -52,6 +52,7 @@ public static class AvailableDecoders
(_, VideoFormat.Vp9, _) => new DecoderVp9(), (_, VideoFormat.Vp9, _) => new DecoderVp9(),
(_, VideoFormat.Undetermined, _) => new DecoderImplicit(), (_, VideoFormat.Undetermined, _) => new DecoderImplicit(),
(_, VideoFormat.Copy, _) => new DecoderImplicit(),
var (accel, videoFormat, pixelFormat) => LogUnknownDecoder(accel, videoFormat, pixelFormat, logger) var (accel, videoFormat, pixelFormat) => LogUnknownDecoder(accel, videoFormat, pixelFormat, logger)
}; };

2
ErsatzTV.FFmpeg/Encoder/AvailableEncoders.cs

@ -30,6 +30,7 @@ public static class AvailableEncoders
(_, VideoFormat.Mpeg2Video) => new EncoderMpeg2Video(), (_, VideoFormat.Mpeg2Video) => new EncoderMpeg2Video(),
(_, VideoFormat.Undetermined) => new EncoderImplicitVideo(), (_, VideoFormat.Undetermined) => new EncoderImplicitVideo(),
(_, VideoFormat.Copy) => new EncoderCopyVideo(),
var (accel, videoFormat) => LogUnknownEncoder(accel, videoFormat, logger) var (accel, videoFormat) => LogUnknownEncoder(accel, videoFormat, logger)
}; };
@ -54,6 +55,7 @@ public static class AvailableEncoders
{ {
AudioFormat.Aac => (Option<IEncoder>)new EncoderAac(), AudioFormat.Aac => (Option<IEncoder>)new EncoderAac(),
AudioFormat.Ac3 => new EncoderAc3(), AudioFormat.Ac3 => new EncoderAc3(),
AudioFormat.Copy => new EncoderCopyAudio(),
_ => LogUnknownEncoder(audioFormat, logger) _ => LogUnknownEncoder(audioFormat, logger)
}, },
() => LogUnknownEncoder(string.Empty, logger)); () => LogUnknownEncoder(string.Empty, logger));

2
ErsatzTV.FFmpeg/Format/AudioFormat.cs

@ -4,4 +4,6 @@ public static class AudioFormat
{ {
public const string Aac = "aac"; public const string Aac = "aac";
public const string Ac3 = "ac3"; public const string Ac3 = "ac3";
public const string Copy = "copy";
} }

1
ErsatzTV.FFmpeg/Format/VideoFormat.cs

@ -14,5 +14,6 @@ public static class VideoFormat
public const string Av1 = "av1"; public const string Av1 = "av1";
public const string MpegTs = "mpegts"; public const string MpegTs = "mpegts";
public const string Copy = "copy";
public const string Undetermined = ""; public const string Undetermined = "";
} }

Loading…
Cancel
Save