@ -4,6 +4,43 @@ All notable changes to this project will be documented in this file.
@@ -4,6 +4,43 @@ 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 audio stream selector scripts for episodes and movies
- This will let you customize which audio stream is selected for playback
- Episodes are passed the following data:
- `channelNumber`
- `channelName`
- `showTitle`
- `showGuids`: array of string ids like `imdb_1234` or `tvdb_1234`
- `seasonNumber`
- `episodeNumber`
- `episodeGuids`: array of string ids like `imdb_1234` or `tvdb_1234`
- `preferredLanguageCodes`: array of string preferred language codes configured for the channel
- `audioStreams`: array of audio stream data, each containing
- `index`: the stream's index number, this is what the function needs to return
- `channels`: the number of audio channels
- `codec`: the audio codec
- `isDefault`: bool indicating whether the stream is flagged as default
- `isForced`: bool indicating whether the stream is flagged as forced
- `language`: the stream's language
- `title`: the stream's title
- Movies are passed the following data:
- `channelNumber`
- `channelName`
- `title`
- `guids`: array of string ids like `imdb_1234` or `tvdb_1234`
- `preferredLanguageCodes`: array of string preferred language codes configured for the channel
- `audioStreams`: array of audio stream data, each containing
- `index`: the stream's index number, this is what the function needs to return
- `channels`: the number of audio channels
- `codec`: the audio codec
- `isDefault`: bool indicating whether the stream is flagged as default
- `isForced`: bool indicating whether the stream is flagged as forced
- `language`: the stream's language
- `title`: the stream's title
### Changed
- Change `Multi-Episode Shuffle` scripting system to use Javascript instead of Lua
@ -171,7 +171,7 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -171,7 +171,7 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@ -48,7 +48,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -48,7 +48,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@ -77,7 +77,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -77,7 +77,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@ -36,16 +50,14 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
@@ -36,16 +50,14 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
{
_logger.LogDebug(
"Channel {Number} is HLS Direct with no preferred audio language or title; using all audio streams",
@ -57,33 +69,45 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
@@ -57,33 +69,45 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
@ -165,9 +189,39 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
@@ -165,9 +189,39 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
_logger.LogDebug("No audio title has been specified; selecting stream with most channels");
@ -194,4 +248,125 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
@@ -194,4 +248,125 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
@ -18,17 +18,18 @@ public class MultiEpisodeShuffleCollectionEnumerator : IMediaCollectionEnumerato
@@ -18,17 +18,18 @@ public class MultiEpisodeShuffleCollectionEnumerator : IMediaCollectionEnumerato
@ -36,24 +37,20 @@ public class MultiEpisodeShuffleCollectionEnumerator : IMediaCollectionEnumerato
@@ -36,24 +37,20 @@ public class MultiEpisodeShuffleCollectionEnumerator : IMediaCollectionEnumerato