@ -48,6 +48,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
@@ -48,6 +48,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- For example, adding `<etv:episode_number_key>{{ episode_number }}</etv:episode_number_key>` to `episode.sbntxt` will also add the `episode_number_key` field to all EPG items in the graphics engine
- All values parsed from XMLTV will be available as strings in the graphics engine (not numbers)
- All `etv:` nodes will be stripped from the XMLTV data when requested by a client
- Add channel troubleshooting button to channels list
- This will open the playback troubleshooting tool in "channel" mode
- This mode requires entering a date and time, and will play up to 30 seconds of *one item from that channel's playout*
### Fixed
- Fix HLS Direct playback with Jellyfin 10.11
@ -71,6 +74,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
@@ -71,6 +74,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- This fix applies to all libraries (local and media server)
- Fix (3 year old) bug removing tags from local libraries when they are removed from NFO files (all content types)
- New scans will properly remove old tags; NFO files may need to be touched to force updating during a scan
- Fix bug where looping motion graphics wouldn't be displayed when seeking into second half of content
### Changed
- Use smaller batch size for search index updates (100, down from 1000)
@ -11,7 +11,8 @@ public record GetConcatProcessByChannelNumber : FFmpegProcessRequest
@@ -11,7 +11,8 @@ public record GetConcatProcessByChannelNumber : FFmpegProcessRequest
@ -44,6 +44,7 @@ public class GetConcatProcessByChannelNumberHandler : FFmpegProcessHandler<GetCo
@@ -44,6 +44,7 @@ public class GetConcatProcessByChannelNumberHandler : FFmpegProcessHandler<GetCo
@ -283,18 +283,31 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -283,18 +283,31 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
boolisComplete=true;
// if we are working ahead, limit to 44s (multiple of segment size)
TimeSpanlimit=TimeSpan.Zero;
if(!request.HlsRealtime)
{
TimeSpanlimit=TimeSpan.FromSeconds(44);
// if we are working ahead, limit to 44s (multiple of segment size)
limit=TimeSpan.FromSeconds(44);
}
if(duration>limit)
{
finish=effectiveNow+limit;
outPoint=inPoint+limit;
duration=limit;
isComplete=false;
}
if(request.IsTroubleshooting)
{
// if we are troubleshooting, limit to 30s
limit=TimeSpan.FromSeconds(30);
}
if(limit>TimeSpan.Zero&&duration>limit)
{
finish=effectiveNow+limit;
outPoint=inPoint+limit;
duration=limit;
isComplete=false;
}
if(request.IsTroubleshooting)
{
channel.Number=".troubleshooting";
}
if(_isDebugNoSync)
@ -318,7 +331,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -318,7 +331,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@ -392,7 +406,7 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -392,7 +406,7 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@ -435,7 +449,7 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -435,7 +449,7 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@ -446,7 +460,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -446,7 +460,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@ -465,6 +480,14 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -465,6 +480,14 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
"Error locating playout item {@Error}. Will display error from {Start} to {Finish}",
error,
@ -493,7 +516,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -493,7 +516,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@ -514,7 +538,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -514,7 +538,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@ -535,7 +560,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@@ -535,7 +560,8 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
@ -15,7 +15,8 @@ public record GetWrappedProcessByChannelNumber : FFmpegProcessRequest
@@ -15,7 +15,8 @@ public record GetWrappedProcessByChannelNumber : FFmpegProcessRequest
@ -46,6 +46,7 @@ public class GetWrappedProcessByChannelNumberHandler : FFmpegProcessHandler<GetW
@@ -46,6 +46,7 @@ public class GetWrappedProcessByChannelNumberHandler : FFmpegProcessHandler<GetW
@ -25,6 +25,12 @@ public class ArchiveTroubleshootingResultsHandler(ILocalFileSystem localFileSyst
@@ -25,6 +25,12 @@ public class ArchiveTroubleshootingResultsHandler(ILocalFileSystem localFileSyst
@ -45,11 +45,14 @@ public partial class StartTroubleshootingPlaybackHandler(
@@ -45,11 +45,14 @@ public partial class StartTroubleshootingPlaybackHandler(
@ -140,6 +143,8 @@ public partial class StartTroubleshootingPlaybackHandler(
@@ -140,6 +143,8 @@ public partial class StartTroubleshootingPlaybackHandler(
.WithValidation(CommandResultValidation.None)
.ExecuteAsync(linkedCts.Token);
logger.LogDebug("Troubleshooting playback completed with exit code {ExitCode}",commandResult.ExitCode);
@ -176,8 +181,6 @@ public partial class StartTroubleshootingPlaybackHandler(
@@ -176,8 +181,6 @@ public partial class StartTroubleshootingPlaybackHandler(
maybeSpeed),
linkedCts.Token);
logger.LogDebug("Troubleshooting playback completed with exit code {ExitCode}",commandResult.ExitCode);
@ -566,7 +566,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -566,7 +566,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
_logger.LogDebug("FFmpeg desired state {FrameState}",desiredState);
@ -598,7 +598,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -598,7 +598,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@ -788,7 +788,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -788,7 +788,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
HardwareAccelerationMode.None,// no hw accel decode since errors loop
hwAccel,
VaapiDriverName(hwAccel,vaapiDriver),
@ -812,7 +812,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -812,7 +812,7 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@ -836,7 +836,9 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@@ -836,7 +836,9 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
@ -259,6 +259,8 @@ public class InternalController : StreamingControllerBase
@@ -259,6 +259,8 @@ public class InternalController : StreamingControllerBase