Browse Source

fix loading epg entries for motion and script elements (#2693)

pull/2697/head
Jason Dove 8 months ago committed by GitHub
parent
commit
468ff087d4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 37
      CHANGELOG.md
  2. 3
      ErsatzTV.Infrastructure/Streaming/Graphics/GraphicsElementLoader.cs

37
CHANGELOG.md

@ -5,25 +5,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased] ## [Unreleased]
### Added ### Added
- Add `script` graphics element type - Graphics Engine:
- Supported in playback troubleshooting and all scheduling types - Add `script` graphics element type
- Supports arbitrary scripts or executables that output BGRA data to stdout - Supported in playback troubleshooting and all scheduling types
- Supports EPG and Media Item replacement in entire template - Supports arbitrary scripts or executables that output BGRA data to stdout
- EPG data is sourced from XMLTV for the current time - Supports EPG and Media Item replacement in entire template
- EPG data can also load a configurable number of subsequent (up next) entries - EPG data is sourced from XMLTV for the current time
- Media Item data is sourced from the currently playing media item - EPG data can also load a configurable number of subsequent (up next) entries
- All template data will also be passed as JSON to the stdin stream of the command - Media Item data is sourced from the currently playing media item
- Template supports: - All template data will also be passed as JSON to the stdin stream of the command
- Script and arguments (`command` and `args`) - Template supports:
- Draw order (`z_index`) - Script and arguments (`command` and `args`)
- Timing (`start_seconds` and `duration_seconds`) - Draw order (`z_index`)
- Timing (`start_seconds` and `duration_seconds`)
- Add framerate template data
- `RFrameRate` - the real content framerate (or channel normalized framerate) as reported by ffmpeg, e.g. `30000/1001`
- `FrameRate` - the decimal representation of `RFrameRate`, e.g. `29.97002997`
- Add remote stream metadata - Add remote stream metadata
- Remote stream definitions (yaml files) can now contain `title`, `plot`, `year` and `content_rating` fields - Remote stream definitions (yaml files) can now contain `title`, `plot`, `year` and `content_rating` fields
- Remote streams can now have thumbnails (same name as yaml file but with image extension) - Remote streams can now have thumbnails (same name as yaml file but with image extension)
- This metadata will be used in generated XMLTV entries, using a template that can be customized like other media kinds - This metadata will be used in generated XMLTV entries, using a template that can be customized like other media kinds
- Add framerate template data to graphics engine
- `RFrameRate` - the real content framerate (or channel normalized framerate) as reported by ffmpeg, e.g. `30000/1001`
- `FrameRate` - the decimal representation of `RFrameRate`, e.g. `29.97002997`
### Fixed ### Fixed
- Fix startup on systems unsupported by NvEncSharp - Fix startup on systems unsupported by NvEncSharp
@ -31,8 +32,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- If the library is already detected as a Movies library in ETV, synchronization must be disabled for the library to change it to an Other Videos library - If the library is already detected as a Movies library in ETV, synchronization must be disabled for the library to change it to an Other Videos library
- A warning will be logged when this scenario is detected - A warning will be logged when this scenario is detected
- AMD VAAPI: work around buggy ffmpeg behavior where hevc_vaapi encoder with RadeonSI driver incorrectly outputs height of 1088 instead of 1080 - AMD VAAPI: work around buggy ffmpeg behavior where hevc_vaapi encoder with RadeonSI driver incorrectly outputs height of 1088 instead of 1080
- Optimize graphics engine to generate element frames in parallel and to eliminate redundant frame copies - Graphics Engine:
- Match graphics engine framerate with source content (or channel normalized) framerate - Optimize graphics engine to generate element frames in parallel and to eliminate redundant frame copies
- Match graphics engine framerate with source content (or channel normalized) framerate
- Fix loading requested number of epg entries for motion graphics elements
### Changed ### Changed
- No longer round framerate to nearest integer when normalizing framerate - No longer round framerate to nearest integer when normalizing framerate

3
ErsatzTV.Infrastructure/Streaming/Graphics/GraphicsElementLoader.cs

@ -202,7 +202,8 @@ public partial class GraphicsElementLoader(
var epgEntries = 0; var epgEntries = 0;
IEnumerable<PlayoutItemGraphicsElement> elementsWithEpg = elements.Where(e => IEnumerable<PlayoutItemGraphicsElement> elementsWithEpg = elements.Where(e =>
e.GraphicsElement.Kind is GraphicsElementKind.Text or GraphicsElementKind.Subtitle); e.GraphicsElement.Kind is GraphicsElementKind.Text or GraphicsElementKind.Subtitle
or GraphicsElementKind.Motion or GraphicsElementKind.Script);
foreach (var reference in elementsWithEpg) foreach (var reference in elementsWithEpg)
{ {

Loading…
Cancel
Save