diff --git a/CHANGELOG.md b/CHANGELOG.md index c10b92528..a8a9c558c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,25 +5,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] ### Added -- Add `script` graphics element type - - Supported in playback troubleshooting and all scheduling types - - Supports arbitrary scripts or executables that output BGRA data to stdout - - Supports EPG and Media Item replacement in entire template - - EPG data is sourced from XMLTV for the current time - - EPG data can also load a configurable number of subsequent (up next) entries - - Media Item data is sourced from the currently playing media item - - All template data will also be passed as JSON to the stdin stream of the command - - Template supports: - - Script and arguments (`command` and `args`) - - Draw order (`z_index`) - - Timing (`start_seconds` and `duration_seconds`) +- Graphics Engine: + - Add `script` graphics element type + - Supported in playback troubleshooting and all scheduling types + - Supports arbitrary scripts or executables that output BGRA data to stdout + - Supports EPG and Media Item replacement in entire template + - EPG data is sourced from XMLTV for the current time + - EPG data can also load a configurable number of subsequent (up next) entries + - Media Item data is sourced from the currently playing media item + - All template data will also be passed as JSON to the stdin stream of the command + - Template supports: + - Script and arguments (`command` and `args`) + - 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 - 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) - 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 - 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 - 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 -- 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 +- Graphics Engine: + - 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 - No longer round framerate to nearest integer when normalizing framerate diff --git a/ErsatzTV.Infrastructure/Streaming/Graphics/GraphicsElementLoader.cs b/ErsatzTV.Infrastructure/Streaming/Graphics/GraphicsElementLoader.cs index cbfd633b6..039089d4a 100644 --- a/ErsatzTV.Infrastructure/Streaming/Graphics/GraphicsElementLoader.cs +++ b/ErsatzTV.Infrastructure/Streaming/Graphics/GraphicsElementLoader.cs @@ -202,7 +202,8 @@ public partial class GraphicsElementLoader( var epgEntries = 0; IEnumerable 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) {