@ -4,8 +4,16 @@ All notable changes to this project will be documented in this file.
@@ -4,8 +4,16 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased]
### Added
- Add `Preferred Subtitle Language` and `Subtitle Mode` to channel settings
- `Preferred Subtitle Language` will filter all subtitle streams based on language
- `Subtitle Mode` will further filter subtitle streams based on attributes (forced, default)
- If picture-based subtitles are found after filtering, they will be burned into the video stream
### Changed
- Remove legacy transcoder logic option; all channels will use the new transcoder logic
- Renamed channel setting `Preferred Language` to `Preferred Audio Language`
@ -21,7 +21,7 @@ public class CreateChannelHandler : IRequestHandler<CreateChannel, Either<BaseEr
@@ -21,7 +21,7 @@ public class CreateChannelHandler : IRequestHandler<CreateChannel, Either<BaseEr
@ -34,11 +34,19 @@ public class CreateChannelHandler : IRequestHandler<CreateChannel, Either<BaseEr
@@ -34,11 +34,19 @@ public class CreateChannelHandler : IRequestHandler<CreateChannel, Either<BaseEr
@ -62,7 +70,9 @@ public class CreateChannelHandler : IRequestHandler<CreateChannel, Either<BaseEr
@@ -62,7 +70,9 @@ public class CreateChannelHandler : IRequestHandler<CreateChannel, Either<BaseEr
@ -82,12 +92,19 @@ public class CreateChannelHandler : IRequestHandler<CreateChannel, Either<BaseEr
@@ -82,12 +92,19 @@ public class CreateChannelHandler : IRequestHandler<CreateChannel, Either<BaseEr
@ -32,7 +32,9 @@ public class UpdateChannelHandler : IRequestHandler<UpdateChannel, Either<BaseEr
@@ -32,7 +32,9 @@ public class UpdateChannelHandler : IRequestHandler<UpdateChannel, Either<BaseEr
@ -69,7 +71,7 @@ public class UpdateChannelHandler : IRequestHandler<UpdateChannel, Either<BaseEr
@@ -69,7 +71,7 @@ public class UpdateChannelHandler : IRequestHandler<UpdateChannel, Either<BaseEr
@ -106,10 +108,10 @@ public class UpdateChannelHandler : IRequestHandler<UpdateChannel, Either<BaseEr
@@ -106,10 +108,10 @@ public class UpdateChannelHandler : IRequestHandler<UpdateChannel, Either<BaseEr
returnBaseError.New("Channel number must be unique");
@ -83,7 +83,7 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@@ -83,7 +83,7 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@ -16,7 +16,7 @@ public class GetFFmpegProfileByIdHandler : IRequestHandler<GetFFmpegProfileById,
@@ -16,7 +16,7 @@ public class GetFFmpegProfileByIdHandler : IRequestHandler<GetFFmpegProfileById,
@ -20,7 +20,7 @@ public class GetFFmpegSettingsHandler : IRequestHandler<GetFFmpegSettings, FFmpe
@@ -20,7 +20,7 @@ public class GetFFmpegSettingsHandler : IRequestHandler<GetFFmpegSettings, FFmpe
@ -39,7 +39,7 @@ public class GetFFmpegSettingsHandler : IRequestHandler<GetFFmpegSettings, FFmpe
@@ -39,7 +39,7 @@ public class GetFFmpegSettingsHandler : IRequestHandler<GetFFmpegSettings, FFmpe
@ -55,6 +55,8 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -55,6 +55,8 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@ -120,7 +122,24 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -120,7 +122,24 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@ -192,6 +211,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -192,6 +211,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
videoInputFile,
audioInputFile,
watermarkInputFile,
subtitleInputFile,
FileSystemLayout.FFmpegReportsFolder,
_logger);
@ -278,7 +298,13 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -278,7 +298,13 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@ -27,27 +27,27 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
@@ -27,27 +27,27 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
_logger.LogDebug("Preferred language has multiple codes {Codes}",allCodes);
_logger.LogDebug("Preferred audio language has multiple codes {Codes}",allCodes);
}
varcorrectLanguage=audioStreams.Filter(
@ -67,7 +67,7 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
@@ -67,7 +67,7 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
if(correctLanguage.Any())
{
_logger.LogDebug(
"Found {Count} audio streams with preferred language code(s) {Code}; selecting stream with most channels",
"Found {Count} audio streams with preferred audio language code(s) {Code}; selecting stream with most channels",
correctLanguage.Count,
allCodes);
@ -75,9 +75,75 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
@@ -75,9 +75,75 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
}
_logger.LogDebug(
"Unable to find audio stream with preferred language code(s) {Code}; selecting stream with most channels",
"Unable to find audio stream with preferred audio language code(s) {Code}; selecting stream with most channels",
@ -16,7 +16,7 @@ public class ChannelEditViewModelValidator : AbstractValidator<ChannelEditViewMo
@@ -16,7 +16,7 @@ public class ChannelEditViewModelValidator : AbstractValidator<ChannelEditViewMo
@ -24,7 +24,7 @@ public class ChannelEditViewModelValidator : AbstractValidator<ChannelEditViewMo
@@ -24,7 +24,7 @@ public class ChannelEditViewModelValidator : AbstractValidator<ChannelEditViewMo