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 @@ -94,12 +94,13 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
}
// 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,
"libx264" or "h264_nvenc" or "h264_qsv" or "h264_vaapi" or "h264_videotoolbox" => VideoFormat.H264,
"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
@ -142,8 +143,8 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService @@ -142,8 +143,8 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
playbackSettings.VideoBufferSize,
playbackSettings.VideoTrackTimeScale,
playbackSettings.Deinterlace,
channel.FFmpegProfile.AudioCodec,
channel.FFmpegProfile.AudioChannels,
playbackSettings.AudioCodec,
playbackSettings.AudioChannels,
playbackSettings.AudioBitrate,
playbackSettings.AudioBufferSize,
playbackSettings.AudioSampleRate,

1
ErsatzTV.FFmpeg/Decoder/AvailableDecoders.cs

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

2
ErsatzTV.FFmpeg/Encoder/AvailableEncoders.cs

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

2
ErsatzTV.FFmpeg/Format/AudioFormat.cs

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

1
ErsatzTV.FFmpeg/Format/VideoFormat.cs

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

Loading…
Cancel
Save