Browse Source

fix fallback filler playback (#2202)

pull/2206/head
Jason Dove 1 year ago committed by GitHub
parent
commit
7f2b5ba47f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 10
      .github/workflows/docker.yml
  2. 2
      CHANGELOG.md
  3. 4
      ErsatzTV.FFmpeg/Pipeline/PipelineBuilderBase.cs

10
.github/workflows/docker.yml

@ -118,12 +118,12 @@ jobs: @@ -118,12 +118,12 @@ jobs:
- name: Read digests from artifacts
id: digests
run: |
AMD64_DIGEST=$(cat digests/digest-amd64/digest.txt)
ARM32V7_DIGEST=$(cat digests/digest-arm32v7/digest.txt)
ARM64_DIGEST=$(cat digests/digest-arm64/digest.txt)
AMD64_HASH=$(cat digests/digest-amd64/digest.txt)
ARM32V7_HASH=$(cat digests/digest-arm32v7/digest.txt)
ARM64_HASH=$(cat digests/digest-arm64/digest.txt)
DOCKER_HUB_DIGESTS="${AMD64_DIGEST} ${ARM64_DIGEST} ${ARM32V7_DIGEST}"
GHCR_DIGESTS="ghcr.io/ersatztv/ersatztv@${AMD64_DIGEST##*@} ghcr.io/ersatztv/ersatztv@${ARM64_DIGEST##*@} ghcr.io/ersatztv/ersatztv@${ARM32V7_DIGEST##*@}"
DOCKER_HUB_DIGESTS="jasongdove/ersatztv@${AMD64_HASH} jasongdove/ersatztv@${ARM64_HASH} jasongdove/ersatztv@${ARM32V7_HASH}"
GHCR_DIGESTS="ghcr.io/ersatztv/ersatztv@${AMD64_HASH} ghcr.io/ersatztv/ersatztv@${ARM64_HASH} ghcr.io/ersatztv/ersatztv@${ARM32V7_HASH}"
echo "docker_hub_digests=${DOCKER_HUB_DIGESTS}" >> $GITHUB_OUTPUT
echo "ghcr_digests=${GHCR_DIGESTS}" >> $GITHUB_OUTPUT

2
CHANGELOG.md

@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. @@ -4,6 +4,8 @@ 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]
### Fixed
- Fix fallback filler playback
## [25.2.0] - 2025-07-24
### Added

4
ErsatzTV.FFmpeg/Pipeline/PipelineBuilderBase.cs

@ -204,7 +204,7 @@ public abstract class PipelineBuilderBase : IPipelineBuilder @@ -204,7 +204,7 @@ public abstract class PipelineBuilderBase : IPipelineBuilder
SetSceneDetect(videoStream, ffmpegState, desiredState, pipelineSteps);
SetFFReport(ffmpegState, pipelineSteps);
SetStreamSeek(ffmpegState, videoInputFile, context, pipelineSteps);
if (ffmpegState.IsTroubleshooting || videoInputFile.StreamInputKind is StreamInputKind.Live)
if (ffmpegState.IsTroubleshooting || desiredState.InfiniteLoop || videoInputFile.StreamInputKind is StreamInputKind.Live)
{
SetTimeLimit(ffmpegState, pipelineSteps);
}
@ -425,7 +425,7 @@ public abstract class PipelineBuilderBase : IPipelineBuilder @@ -425,7 +425,7 @@ public abstract class PipelineBuilderBase : IPipelineBuilder
audioInputFile.FilterSteps.Add(new AudioSetPtsFilter());
}
foreach (TimeSpan audioDuration in audioInputFile.DesiredState.AudioDuration)
foreach (TimeSpan audioDuration in audioInputFile.DesiredState.AudioDuration.Filter(d => d > TimeSpan.Zero))
{
audioInputFile.FilterSteps.Add(new AudioPadFilter(audioDuration));
pipelineSteps.Add(new ShortestOutputOption());

Loading…
Cancel
Save