Skip to content

Releases: thehack904/RetroStation_MC

v1.5.0 Beta 2

v1.5.0 Beta 2 Pre-release
Pre-release

Choose a tag to compare

@thehack904 thehack904 released this 27 Sep 14:52

v1.5.0 Beta 2 Summary

Beta 2 focuses on stabilizing Guide Preview playback and pipeline recovery after Beta 1 testing exposed timing, aspect-ratio, and watchdog issues.

Fixed / Validated

  • Stabilized HDHomeRun / MPEG-TS Guide Preview pacing.

    • Added real-time input pacing with -re.
    • Enforced 15 fps CFR output.
    • Preserved the validated HDHomeRun A/V timestamp handling.
    • Confirmed smooth playback on both HD and SD Guide outputs across multiple channel changes.
  • Stabilized IPTV / HLS Guide Preview pacing.

    • Restored -re pacing for HLS inputs.
    • Preserved the incoming live timestamp domain.
    • Kept the HLS preview normalizer on libx264 for compatibility with older Intel VA-API systems.
    • Confirmed 15 fps output and stable playback.
  • Improved Auto aspect handling.

    • Detected aspect-ratio changes no longer force an unnecessary second full Guide pipeline restart.
    • Forced 4:3 and 16:9 modes remain available.
    • Mixed-aspect source behavior is improved and no longer causes the previous restart loop.
  • Fixed Stop Guide / watchdog interaction.

    • Stopping the Guide now marks the pipeline inactive before teardown.
    • The watchdog no longer restarts a Guide that was intentionally stopped.
  • Verified watchdog recovery during active playback.

    • Manually killing the primary Guide FFmpeg process correctly triggered watchdog recovery.
    • Renderer and FFmpeg were restarted automatically.
    • VA-API hardware encoding remained selected after recovery.
  • Retained temporary protection against false global hardware fallback during Beta testing.

    • Generic pipeline restarts no longer permanently disable hardware acceleration for the entire session.

Known / Remaining

  • Guide FFmpeg processes can still require SIGKILL after failing to exit cleanly on SIGTERM during some restarts.
  • HLS sources may log occasional corrupt MPEG-TS packets; testing showed playback continues normally after the bad packet is dropped.
  • More refinement may still be needed for channels containing frequently changing 16:9 / 4:3 material.
  • Hardware fallback logic should eventually be scoped to confirmed encoder failures rather than generic pipeline restarts.

v1.5.0 Beta 1

v1.5.0 Beta 1 Pre-release
Pre-release

Choose a tag to compare

@thehack904 thehack904 released this 25 Sep 22:03

v1.5.0 Beta 1 is now available for testing.

This is the first public beta of the next major RetroStation MC release. v1.5.0 expands RSMC beyond its original virtual-channel role by adding HDHomeRun integration, multi-source channel aggregation, rebroadcasting, a substantially upgraded Guide Preview system, hardware-accelerated video processing, and a new Linux installation layout.

Because this is a beta, existing users should back up their configuration before upgrading and report any regressions or unexpected behavior.

Major Changes

HDHomeRun Integration

RSMC can now discover and use HDHomeRun tuners as channel sources.

The new HDHomeRun Input interface provides a compact, searchable channel table with controls for:

  • Use — make the channel available to RSMC
  • Rebroadcast — make the channel available through RSMC's rebroadcast system
  • Active — enable both Use and Rebroadcast
  • Select/Unselect All controls
  • Channel filtering and pagination

Selected HDHomeRun channels can also be incorporated into RSMC's Guide and exported channel lineup.

HDHomeRun MPEG-TS sources are supported by the Guide Preview pipeline and can be normalized through RSMC when necessary.

Multi-Source Channel Aggregation

RSMC can now build a unified channel lineup from multiple source types.

v1.5.0 Beta 1 supports:

  • RSMC virtual channels
  • Imported IPTV/M3U channels
  • HDHomeRun channels
  • Guide-related channels

Channel ordering is normalized numerically across sources, and duplicate channel numbers can coexist without silently replacing one another.

The generated M3U and XMLTV exports now use the same unified ordering logic as the Guide.

Rebroadcast System

HDHomeRun, Virtual Channel, and IPTV/M3U sources can now participate in RSMC's rebroadcast system.

A global transport policy allows rebroadcast output to use:

  • HLS Segmenter
  • MPEG-TS

Rebroadcast channels can optionally be included in RSMC's generated channels.m3u and xmltv outputs.

Guide Preview Improvements

The Guide Preview system received substantial work in v1.5.0.

Administrators can select a preview Video Source and channel rather than relying on a fixed preview source.

Supported preview sources include:

  • RSMC Virtual Channels
  • HDHomeRun channels

RSMC automatically handles HLS and MPEG-TS source detection and uses the appropriate preview pipeline.

Guide Preview retains configurable:

  • Audio mode
  • Aspect ratio
  • Preview channel
  • Rotating Guide messages
  • Now Playing information

The Now Playing option can display the selected channel number, channel name, and current program information in the Guide message rotation.

Improved A/V Synchronization

Considerable testing went into MPEG-TS and HLS preview synchronization during the v1.5.0 development cycle.

RSMC now includes separate synchronization controls for different source types, allowing installations to compensate for source-specific timing differences.

Timing adjustments are presented in milliseconds while also showing the corresponding value in seconds for easier configuration.

Both HDHomeRun MPEG-TS and IPTV/HLS preview sources were tested during Beta 1 development.

Preview Stream Reuse

When an external viewer tunes to the same channel currently being processed for Guide Preview, RSMC can reuse the existing preview stream where appropriate instead of unnecessarily starting another processing pipeline.

If the preview stream is unavailable, normal stream creation is used as a fallback.

This can reduce channel startup time and duplicate processing.

Hardware Acceleration

The v1.5.0 video pipeline includes expanded hardware-acceleration support and diagnostics.

RSMC can detect available FFmpeg acceleration capabilities and use supported hardware where appropriate while retaining software fallback behavior.

The Diagnostics interface provides additional information for troubleshooting source detection, video processing, and hardware acceleration.

Guide Source Identification

The Guide now distinguishes channels originating from different RSMC source types.

The Guide legend identifies:

  • [R] RSMC Virtual Channel
  • [I] Imported IPTV/M3U Channel
  • [H] HDHomeRun Channel

This makes mixed-source channel lineups considerably easier to identify while viewing the Guide.

Linux Installation Changes

v1.5.0 introduces a more conventional isolated Linux filesystem layout.

RSMC now uses locations such as:

  • /opt/retrostation-mc — application
  • /etc/retrostation-mc — configuration
  • /var/lib/retrostation-mc — persistent application state
  • /var/backups/retrostation-mc — backups

The installation also uses a dedicated RSMC service account rather than relying on the interactive user's home directory.

Existing installations are migrated by the installer where supported.

Security and Release Cleanup

The old development Flask signing key has been removed.

Each RSMC installation now generates its own persistent random signing key and stores it with restrictive permissions in RSMC's persistent state directory.

The Beta 1 source tree has also been cleaned for public release, including removal of development artifacts and private development-environment references.

Upgrade Recommendation

Back up your existing RSMC installation before installing Beta 1.

This release contains significant changes to filesystem layout, source handling, streaming, Guide Preview, and channel export behavior.

Beta testing is particularly useful for installations using:

  • Different HDHomeRun models
  • Large HDHomeRun lineups
  • Mixed IPTV + HDHomeRun + Virtual Channel lineups
  • MPEG-TS sources
  • HLS sources
  • Intel, AMD, or NVIDIA hardware acceleration
  • SD/4:3 displays
  • Large XMLTV datasets

Beta Status

This is v1.5.0 Beta 1, not the final v1.5.0 release.

The core functionality has been tested throughout development, including HDHomeRun ingest, HLS and MPEG-TS Preview sources, A/V synchronization, unified channel exports, virtual channels, Guide generation, and rebroadcasting.

The purpose of Beta 1 is to expose the combined v1.5.0 implementation to a wider range of tuners, source formats, GPUs, channel lineups, and installation environments before the final release.

Please report reproducible issues through GitHub and include relevant Diagnostics information and logs when possible.

Thank You

Thanks to everyone testing RetroStation MC and providing feedback.

Turn on. Tune. Watch.

Release v1.4.0

Choose a tag to compare

@thehack904 thehack904 released this 17 Sep 20:57
16be557

[v1.4.0] - 2026-09-17

  • Added automatic Guide Preview input transport detection for HLS, MPEG-TS, and local-file preview sources before Guide startup.
  • Added source-keyed transport caching through guide_preview_detected_transport and guide_preview_transport_source_key so a cached result is reused only for the exact selected preview source.
  • Added POST /guide-preview/detect-transport for bounded selection-time probing of HTTP/HTTPS preview URLs, with server-side fallback detection when settings are saved.
  • Added a dedicated MPEG-TS Guide Preview relay that normalizes the selected live MPEG-TS source into a short local HLS relay before FFmpeg overlays it into the Guide.
  • Split Guide Preview processing by detected input transport: MPEG-TS uses the dedicated relay/overlay path, while HLS, local files, and unknown network inputs use the shared normalized-frame path.
  • Updated Preview-audio synchronization so the HLS/local-file path derives normalized video and optional AAC audio relays from one FFmpeg input clock; the MPEG-TS path maps preview audio from the same relayed source used for video.
  • Added transport-specific source pacing: detected HLS inputs use realtime pacing, local files loop in realtime, and live network MPEG-TS inputs avoid the HLS pacing behavior.
  • Removed the misleading Guide Channel Group filter from the admin form; M3U group-title remains parsed channel metadata and is not used to filter Guide rendering.
  • Corrected Guide Message parsing/documentation so rotating items use explicit multiline [message] ... [/message] blocks. Blank lines inside a message are preserved as spacing rather than splitting messages.
  • Added timed Guide Message blocks ([message:seconds]) and blank intervals ([blank], [blank:seconds]), with explicit durations capped at one hour.
  • Added regression coverage in tests/test_guide_preview_transport.py, tests/test_guide_preview_integration.py, and tests/test_guide_message_live_update.py for transport detection/caching, pipeline routing, and the corrected message syntax.
  • This change concerns Guide Preview input detection and processing only. Selectable HLS versus MPEG-TS Guide/Virtual Channel output remains a separate future feature request and is not implemented here.

Hardware acceleration reliability

  • Fixed VA-API live encoding for software-rendered RGB24 Guide, Weather, Simulated Traffic, and News Now frames by explicitly opening the DRM render node and converting/uploading frames with format=nv12,hwupload before h264_vaapi.
  • Fixed Guide Preview + VA-API by appending the hardware upload stage to the preview filter_complex output instead of bypassing the overlay graph.
  • Fixed hardware-encoder fallback loops: a hardware process that exits before producing HLS segments now counts as an initialization failure even when the manager watchdog notices it after the original quick-failure timer. After the configured threshold, the channel uses libx264 for the remainder of the process session.
  • Added equivalent hardware-failure fallback handling to News Now and improved exited child-process reaping.
  • Linux install/upgrade now adds the RSMC service account to existing video and render groups so Intel VA-API/QSV can access /dev/dri without a manual usermod.
  • Added RSMC_VAAPI_DEVICE as an optional environment override; the default render node remains /dev/dri/renderD128.

Secondary Guide output

  • Added an optional second Guide Channel output controlled from Guide Channel Render Settings.
  • Secondary output uses its own native resolution-aware renderer rather than scaling the completed primary stream, preserving correct SD/CRT Guide geometry and readable UI proportions.
  • Added secondary resolutions 720x480 (default), 640x480, and 960x720.
  • Secondary rendering reuses the primary Guide data, theme, Guide Message, preview source, timing, and existing hardware/software encoder-selection policy with software fallback.
  • Added SD-specific UI scaling for fonts, row heights, header/footer, channel column, clock, padding, and preview geometry.
  • Added conservative secondary-output bitrate caps to improve playback stability on lower-power IPTV clients.
  • The normal /channel.m3u and XMLTV exports automatically include the secondary Guide as a separate selectable channel when enabled; users do not need to configure the raw secondary HLS playlist directly.
  • Fixed secondary Guide startup ordering, FFmpeg scale syntax, native preview-overlay alignment, and pipeline status/error reporting.
  • Moved Guide Message into its own collapsed accordion on the Guide Preview page so its live-save control is visually separated from Preview save/restart controls.

Guide Channel video preview

  • Added an optional classic cable-guide video preview window to the Guide Channel, disabled by default.
  • Added Web UI controls for enabling/disabling preview video, choosing an uploaded local file or HTTP/HTTPS/HLS source, uploading/removing local preview video, and selecting audio behavior.
  • Added three preview audio modes: Guide (existing Guide Channel music), Preview (preview-source audio), and Silent.
  • Added resolution- and aspect-ratio-aware preview layout for all four Guide Channel output profiles: 1280x720 and 1920x1080 widescreen, plus 960x720 and 1440x1080 standard 4:3.
  • The renderer now reserves the themed header/information area natively and starts the timeline/listings below the preview region instead of vertically squashing the completed guide frame.
  • Preview-enabled pagination automatically reduces visible rows when necessary so lower-resolution layouts do not clip or skip channels.
  • Guide Preview Video Source now includes enabled RSMC Virtual Channels (Weather, Simulated Traffic, News Now, and Channel Mix) as directly selectable live preview sources.
  • Changed the Guide preview presentation to a raised/beveled video window, visually centered between the bottom of the clock text and the guide grid, with the frame right edge aligned to the clock seconds field across all four supported output resolutions; the shadow now adapts to the active theme header color.
  • FFmpeg overlays the preview source inside the renderer-owned themed region while retaining the existing single-renderer Guide Channel pipeline.
  • Added Guide Preview aspect controls: Auto, 16:9, and 4:3. Auto starts immediately with a 16:9 fallback, detects the selected source display aspect ratio asynchronously with a bounded ffprobe worker, caches the result for that exact source, and never blocks Guide startup. Manual 16:9/4:3 overrides skip detection.
  • The raised preview frame now changes between 16:9 and 4:3 while preserving its approved vertical center and fixed right-edge clock alignment; only the left edge moves when a 4:3 window is used.
  • Added optional rotating Guide Message text opposite the video preview. Admin-entered messages support explicit multiline [message] blocks, a configurable 3–60 second default interval, automatic wrapping/clipping, and continuous looping; blank lines inside a message are preserved as spacing. Only one understated message is shown at a time; the text is aligned beneath the Guide Channel title, constrained to the left information area, and never displays timing/status controls on the broadcast output.
  • Added Guide Message blank-screen directives: [blank] holds the message area empty for the normal Display Time, while [blank:seconds] (for example, [blank:90]) holds it empty for an explicit duration up to one hour. Saving changed message text/timing restarts the message rotation at the first slide without restarting the Guide pipeline.

Shared virtual-channel music library

  • Consolidated virtual-channel background audio around the central data/music/ shared library. Existing legacy Weather music files are copied into the shared library on startup when needed.
  • Guide, Weather, Simulated Traffic, and News Now can independently select silence, one track, selected tracks, or all files from the shared library, with independent loop settings.
  • Added AAC/silent-audio output to Traffic and News HLS so those channels can use shared background music natively. Channel Mix now has its own shared-library audio override that drops member audio and keeps Mix audio independent of source changes.

Simulated Traffic broadcast rendering and Virtual Channels export

News Now virtual channel migration

  • Migrated RetroIPTVGuide News Now RSS/Atom behavior into RSMC as CH 4 with a native generated HLS pipeline.

  • Added up to six configurable feeds, synchronized 30-minute wall-clock feed rotation, parser normalization, cached/rate-limited polling, safe text rendering, and graceful empty/error states.

  • Added independent News HD/SD aspect-ratio and resolution settings, /api/news, /news preview, /hls/news.m3u8, M3U/XMLTV.

  • Fixed the Simulated Traffic HLS renderer to use the same OpenStreetMap basemap and real road GeoJSON used by the working RetroIPTVGuide traffic display instead of drawing schematic placeholder lines.

  • Bundled the ten seed-city basemaps and road GeoJSON datasets from the released RetroIPTVGuide implementation so Traffic works immediately without requiring first-run map downloads.

  • Kept congestion levels and incidents explicitly simulated while applying those synthetic conditions to real road geometry.

  • Changed the main-page Weather Channel export checkbox to a Virtual Channels master checkbox; enabling it includes Guide, Weather, and Simulated Traffic in RSMC M3U/XMLTV output and enables both optional virtual-channel pipelines.

  • Traffic continues to support independent 16:9/4:3 and HD/SD resolution selection.

Channel export and channel icon compatibility

  • Changed export to include RSMC-owned channels by default (Guide Channel plus enabled virtual/integration chan...
Read more

Release v1.3.0

Choose a tag to compare

@thehack904 thehack904 released this 01 Jul 21:29
fdd1e8d

[v1.3.0] - 2026-07-01

Added

  • Added first-pass hardware acceleration capability detection through app/gpu_capabilities.py.

  • Added gpu_hwaccel_detect_v3.py for local GPU, FFmpeg encoder, Docker visibility, and software-fallback diagnostics.

  • Added hardware acceleration mode configuration through hardware_acceleration_mode.

    • software_fallback keeps encoding on libx264.
    • hardware_if_available selects encoder-ready hardware only when a functional FFmpeg probe succeeds.
  • Added admin hardware acceleration controls and status reporting for:

    • detected hardware devices
    • Docker-visible hardware devices
    • FFmpeg-reported encoders
    • encoder-ready providers
    • selected encode path
    • software fallback status
  • Added functional FFmpeg hardware encoder probes so detected GPUs are not treated as usable unless the selected encoder can successfully encode.

  • Added the dedicated Weather virtual channel.

    • Added Virtual Channels admin page at /virtual-channels.
    • Added Weather Channel browser preview page at /weather.
    • Added dedicated Weather HLS playlist at /hls/weather.m3u8.
    • Added Weather renderer support through app/weather_renderer.py.
    • Added Weather radar support through app/weather_radar.py.
    • Added Weather Channel state tracking through data/weather_state.json.
  • Added Weather Channel configuration options:

    • enable/disable Weather Channel
    • latitude and longitude
    • location name
    • temperature units
    • segment duration
    • background condition override
    • Weather logo export toggle
  • Added Weather Channel playlist and EPG export support.

    • /channel.m3u and /channel.m3u8 can now include enabled virtual channels.
    • /channel.xmltv can now include XMLTV entries for enabled virtual channels.
  • Added Weather Channel logo support.

    • Added bundled default Weather logo at data/weather_logo/default.svg.
    • Added Weather logo route at /weather-logo/<filename>.
    • Added optional tvg-logo metadata for Weather playlist export.
  • Added Weather Channel background music support.

    • Added separate Weather music upload/delete workflow.
    • Added separate Weather music library under data/weather_music/.
    • Added Weather-specific single-track and playlist modes.
  • Added Weather data APIs and supporting integrations:

    • /api/weather
    • /api/weather/bg_override
    • /api/weather/zip-lookup
    • /weather-radar/current.png
  • Added Open-Meteo forecast integration for current, hourly, and daily Weather Channel data.

  • Added NWS active weather alert integration for U.S. locations.

  • Added ZIP-code lookup support through Nominatim for easier Weather Channel location setup.

  • Added radar image generation and caching support.

  • Added requests>=2.31.0 as a runtime dependency for Weather data, radar, alerts, and ZIP lookup requests.

  • Added test coverage for:

    • GPU capability detection
    • hardware encoder fallback
    • hardware acceleration status UI
    • Weather virtual channel exports
    • Weather radar handling
    • Weather rendering
    • M3U parsing

Changed

  • Updated FFmpeg profile resolution so hardware acceleration is selected only when an encoder-ready provider passes validation.

  • Updated guide and Weather HLS pipelines to share the same hardware/software encode-path selection logic.

  • Updated the admin UI with Virtual Channels navigation, Weather Channel controls, and expanded hardware acceleration status.

  • Updated M3U/XMLTV generation to support multiple exported virtual channels instead of only the main guide channel.

  • Updated Linux installation diagnostics to run gpu_hwaccel_detect_v3.py and report whether hardware encoding is usable or software fallback will be used.

  • Updated Docker host-alias examples so the default package no longer includes a private LAN IP address.

    • RETROGUIDE_HOST_ALIASES should remain unset by default.
    • Host aliases are now documented as optional deployment-specific overrides, for example:
      RETROGUIDE_HOST_ALIASES=iptv.lan=<media-server-ip>,epg.lan=<epg-server-ip>

Fixed

  • Fixed Weather virtual channel playlist entries so they point to /hls/weather.m3u8 instead of the embedded Weather preview page.
  • Improved hardware acceleration fallback behavior so detected-but-unusable GPUs do not cause the pipeline to fail when software fallback is available.
  • Removed private-network example IPs from default Docker host-alias examples to avoid interfering with user deployments.

Security

  • Served Weather logo files use sanitized filenames and no-cache headers, matching the guide-logo delivery model.
  • Weather music upload/delete handling uses sanitized filenames and validates selections against the uploaded Weather music library.
  • Docker host-alias configuration is now opt-in so the default compose example does not expose or assume a private LAN topology.

Known Issues

  • RetroStation MC v1.3.0 still has no built-in authentication. Keep it LAN-only, behind a VPN, or behind an authenticated reverse proxy.
  • Weather Channel output depends on external data providers for forecast, alert, radar, and ZIP lookup data. If those services are unavailable, Weather output may fall back to partial or placeholder data.
  • Hardware acceleration support depends on the host GPU, Docker runtime visibility, installed drivers, and FFmpeg encoder support. If hardware encoding is unavailable or fails validation, RetroStation MC falls back to software encoding.

Release v1.2.0

Choose a tag to compare

@thehack904 thehack904 released this 06 Jun 14:36
1eca739

[v1.2.0] - 2026-06-06

Added

  • Added an Off Air admin tab for scheduling a daily off-air window.
  • Added off-air configuration keys:
    • off_air_enabled, off_air_start, off_air_end, off_air_static_enabled
  • Added off-air HLS behavior:
    • /hls/master.m3u8 routes viewers to standby during the off-air window.
    • /hls/live.m3u8 returns 404 while off-air.
    • /hls/standby.m3u8 remains available while off-air, even if the live guide pipeline is buffered.
  • Added optional TV static noise output during off-air windows.
  • Added static segment generation as output/static.ts.
  • Added a Standby Pattern admin tab.
  • Added standby pattern image upload support.
  • Added standby pattern preview, selection, default reset, and removal controls.
  • Added support for custom standby pattern formats:
    • PNG, JPG / JPEG, GIF, WEBP, BMP
  • Added standby pattern upload validation:
    • sanitized filenames
    • allowed extensions only
    • 10 MB maximum file size
    • image parse/verification check
  • Added configurable standby text overlay controls:
    • enable/disable overlay
    • overlay opacity from 0% to 100%
  • Added standby_custom_file, standby_overlay_enabled, and standby_overlay_opacity configuration keys.
  • Added HLS continuity watchdog diagnostics.
  • Added HLS watchdog status display in the Diagnostics tab:
    • HLS continuity health
    • playlist age
    • latest segment
    • latest segment age
    • watchdog warnings
  • Added watchdog detection for:
    • missing/unreadable playlists
    • stalled playlist updates
    • empty playlist windows
    • missing latest segments
    • stalled segment generation
    • stale playlist windows
  • Added throttled watchdog warning logs under hls.watchdog.
  • Added FFmpeg profile abstraction through new app/ffmpeg_profiles.py.
  • Added default software_default FFmpeg profile.
  • Added placeholder hardware acceleration provider definitions for:
    • NVIDIA, Intel, AMD, VAAPI
  • Added ffmpeg_profile configuration key.
  • Added profile-based FFmpeg command generation for video codec, audio codec, resolution, preset, bitrate, and HLS segment length.
  • Added uninstall-linux.sh.
  • Added docs/ADDITIONAL_ROADMAP.md.
  • Added new test coverage for:
    • FFmpeg profile resolution and command generation
    • HLS watchdog health/degraded states
    • off-air schedule boundary handling
    • standby pattern upload/selection/settings
    • standby overlay behavior
    • Linux installer/uninstaller behavior

Changed

  • Updated the Admin About tab version from v1.1.0 to v1.2.0.
  • Refactored FFmpeg command construction out of the main pipeline start logic into a dedicated helper.
  • Updated audio FFmpeg argument generation to use the selected profile audio codec instead of hardcoding AAC.
  • Updated standby generation so a custom uploaded pattern can replace the generated SMPTE-style pattern.
  • Updated standby playlist generation so it can serve either standby.ts or static.ts.
  • Updated pipeline start/stop behavior to generate both standby and static segments.
  • Updated stale output cleanup to preserve both standby.ts and static.ts.
  • Updated Docker Compose service and container names from RetroStation_MC to lowercase retrostation-mc.
  • Reworked install-linux.sh into a root/systemd installer that:
    • requires root/sudo
    • creates/uses an iptv system user
    • installs to /home/iptv/retrostation-mc
    • creates a Python virtual environment
    • installs requirements
    • creates and starts a retrostation-mc systemd service
  • Updated README and installation documentation with the new Linux uninstall flow.
  • Updated architecture, configuration, HLS pipeline, and admin user documentation for the new off-air, standby pattern, watchdog, and installer behavior.

Fixed

  • Improved HLS observability by surfacing stalled playlist/segment conditions directly in diagnostics.
  • Improved standby/live switching behavior during scheduled off-air windows.
  • Improved standby pattern robustness by validating uploaded image content before use.
  • Improved FFmpeg configurability by centralizing codec/profile settings instead of scattering hardcoded values.

Security / Hardening

  • Added validation and sanitization for standby pattern uploads.
  • Added file size limits for standby pattern uploads.
  • Added no-cache headers for served standby pattern files.
  • Hardened Linux install path handling by refusing unexpected staging locations.
  • Added uninstall logic that preserves the iptv user when /home/iptv still contains other files.

Known Issues / Notes

  • The hardware acceleration providers are currently placeholders; only the default software FFmpeg profile is implemented.

Release v1.1.0

Choose a tag to compare

@thehack904 thehack904 released this 28 May 00:42
9b8a448

[v1.1.0] - 2026-05-27

Added

  • RetroStation MC as the new default bundled theme.
  • Bundled themes retrostation_mc, classic_cable, and ersatztv (displayed as Icon Guide in the admin UI).
  • Admin UI support for Guide Icon / M3U logo control.
  • Default guide logo support served from data/guide_logo.
  • Custom guide icon upload, preview, removal, and serving through /guide-logo/<filename>.
  • M3U tvg-logo export support for /channel.m3u and /channel.m3u8.
  • Guide logo mode options for the default icon, an uploaded custom icon, or a disabled icon.
  • Browser timezone detection so the local display mode follows the admin browser's detected IANA timezone.
  • Group-specific Movies and Sports programme cell colors when a theme defines program_bg_movies or program_bg_sports.
  • bump_version.py helper script for coordinated version updates.
  • Regression coverage for bundled themes, guide logo controls, M3U logo output, version bumping, and event storage trimming.

Changed

  • Default theme from classic_blue to retrostation_mc.
  • README version references from v1.0.0 to v1.1.0.
  • Admin About tab version from v1.0.0 to v1.1.0.
  • Theme selection labels to show friendly names from theme.json.
  • Guide state output to include timezone and browser timezone metadata.
  • Renderer time labels and header clock to respect the configured display timezone.
  • Theme documentation to cover the new bundled themes and optional Movies/Sports programme background overrides.
  • Configuration documentation to reflect the new default theme.
  • Documentation index changelog link to point to the root CHANGELOG.md.

Fixed

  • Local timezone display behavior by capturing the browser timezone instead of relying only on the server/container timezone.
  • Exported channel playlists so IPTV clients can receive a guide/channel logo through tvg-logo.
  • Potential unbounded app event database growth by trimming old events when data/config.db exceeds 500 MB.
  • Custom guide icon handling by validating file extension, size, and image signature before accepting uploads.

Removed

  • Duplicate docs/CHANGELOG.md; the changelog is now centralized at the repository root.

Security

  • Guide icon upload hardening with allowed extensions only, a 5 MB maximum file size, basic file signature/content validation, and sanitized filenames via secure_filename.
  • No-cache headers for served guide logo files.

Known Issues

  • No new known issues were added for v1.1.0.

Release v1.0.0

Choose a tag to compare

@thehack904 thehack904 released this 25 May 02:22

[v1.0.0] - 2026-05-23

Initial public release of RetroStation MC.

RetroStation MC is a proof-of-concept TV station / master-control style application that renders a retro electronic program guide into an HLS video stream. It is designed to work alongside RetroIPTVGuide or other IPTV clients by exposing M3U and XMLTV-compatible outputs.

Added

  • Flask-based web application for RetroStation MC.
  • Browser-based admin dashboard.
  • Admin preview player using HLS playback.
  • SQLite-backed configuration database.
  • SQLite-backed application event log.
  • M3U playlist parser for channel metadata.
  • XMLTV parser for programme metadata.
  • Normalized guide state generation through guide_state.json.
  • Pillow-based headless guide renderer.
  • FFmpeg-based HLS encoding pipeline.
  • HLS master playlist endpoint.
  • Standby video playlist handling.
  • Live guide playlist handling.
  • Backward-compatible /hls/guide.m3u8 endpoint.
  • Stream versioning for standby/live transitions.
  • Single-channel M3U output endpoint.
  • Single-channel XMLTV output endpoint.
  • Background music upload support.
  • Background music selection and enablement controls.
  • Silent AAC fallback audio generation when no background audio is selected.
  • Configurable diagnostics and HLS buffering settings.
  • Log export in JSONL format.
  • Log export in CSV format.
  • Bundled sample M3U playlist data.
  • Bundled sample XMLTV guide data.
  • Bundled JSON-based visual themes.
  • Dockerfile for container builds.
  • Docker Compose example for local deployment.
  • Project documentation set covering installation, configuration, architecture, API behavior, troubleshooting, and development workflow.

Changed

  • Establishes RetroStation MC as the project name for the station-control / guide-rendering application.
  • Establishes v1.0.0 as the baseline release for future documentation, issue tracking, and version comparison.

Known Issues

  • No built-in authentication is included in v1.0.0.
  • The application should be deployed on a trusted local network or behind external access controls.
  • The renderer is implemented in Python/Pillow as a validation-oriented implementation and may be replaced or optimized in later releases.
  • HLS timing and live-edge behavior may require tuning depending on host performance, FFmpeg behavior, browser buffering, and client playback behavior.
  • Standby/live switching depends on playlist state, segment generation, and client refresh behavior.

Security

  • v1.0.0 should not be exposed directly to the public internet.
  • Operators should place the application behind a reverse proxy, VPN, authentication layer, or trusted LAN boundary if remote access is required.