Short: Multi-codec video player and streamer Author: Darren Banfi (boingball) Uploader: boingball gmail com Type: gfx/show Version: 1.3.0 Requires: 68030+; util/libs/AmiSSL-v5-OS3.lha for online features Architecture: m68k-amigaos >= 3.0.0 Description: MintVID is a multi-codec video player for accelerated 68k Amigas, from 68030-class ECS/AGA systems through 68040/060 machines to PiStorm/Emu68. It supports native chipset and RTG output, local files, HTTP/HTTPS, HLS, IPTV and public YouTube playback. WHAT'S NEW IN 1.3.0 - Speeds up H.264 m68k inverse-transform/reconstruction hot loops by inlining tiny helpers and removing repeated BSR/RTS overhead. - Adds a 68060-only branchless H.264 luma-deblocking primitive while keeping the established shorter implementation for 68030/040. - Enables CPU-aware AAC acceleration by default. The 68030/040 editions use hardware full-result multiplication; MintVID060 uses bit-exact hardware partial products and avoids the 68060's software-emulated register-pair MULS.L form. - Routes H.263, MPEG-2, MPEG-4 Part 2, MP42/DIV2, WMV1 and WMV2 through the shared table-driven/m68k-ASM YUV converter instead of six multiply-heavy scalar output loops. - Lets ytgui and ytgui-GT accept a pasted YouTube video or live URL directly in the search field, so a link found elsewhere can be played without searching for the video again inside MintVID. - Real-A1200 68060 testing confirmed clean stereo AAC and brought the lowest-resolution BBC One H.264/HLS stream close to real time in AGA/HAM8. Turbo+ provides continuous audio with keyframe/slideshow video when the complete stream remains too demanding. MintVID 1.3.0 is a release built on the 1.2.x performance work. The WMV7/8 and HLS shutdown fixes from 1.1.1, plus the TurboGT, Kalms C2P, RTG direct-write, YouTube, RAM-aware queueing and audio-rescue work from 1.1.0, remain present. See CHANGELOG.txt in the release archive, or CHANGELOG.md in the source tree, for the detailed list. Codec support does not imply real-time playback on every CPU. Practical performance depends on processor speed, codec complexity, resolution, bitrate and display mode. Lightweight older codecs are the natural fit for classic accelerators. Very-low-resolution H.264 can now approach real time on a fast real 68060, while PiStorm/Emu68 remains the practical target for a broader range of modern streams and resolutions. WHO THIS IS FOR MintVID is aimed at accelerated Amiga hardware whose owner wants a broad video player with local-file, network, YouTube and IPTV support. On classic 68030/040/060 accelerators, the supported online formats should not be read as a promise of smooth H.264 streaming; those features are also useful for compatibility testing and experimentation. PiStorm/Emu68-class systems are the main target for practical H.264 YouTube/IPTV use. MintVID uses the same feature set across its 68030, 68040 and 68060 builds. There is no separate AGA, RTG or PiStorm feature edition; display mode and practical playback performance depend on the hardware underneath it. - 68030-class ECS/AGA systems - best suited to lightweight codecs and modest frame sizes. Cinepak is the natural starting point; heavier formats may decode correctly without being practical in real time. - 68040/060 systems - older codecs such as Cinepak, MJPEG, MPEG-1/2, MPEG-4 Part 2 and WMV7/8 become more practical at modest resolutions, especially with RTG. H.264/AVC remains extremely demanding, but the 1.2.0 H.264/AAC improvements brought the lowest-resolution BBC One HLS stream close to real time on a tested real 68060 using AGA/HAM8. Results depend heavily on CPU clock, stream, audio, resolution and display mode; higher resolutions are still not expected to be real-time on classic hardware. - PiStorm/Emu68 - use the MintVID040 build. This is the build targeted for the Emu68/PiStorm environment. H.264/AVC (Baseline through High Profile, CABAC and B-frames) becomes much more practical here. On the tested Pi3-based PiStorm 600, low-resolution H.264 streams below roughly 200p have played well. Faster PiStorm hardware should provide more headroom, but exact results depend on the stream and configuration. - Vampire/Apollo 68080 - not yet validated by the MintVID project, so no optimised build is officially recommended yet. Do not assume the 68060 build is the correct choice solely from the CPU name; feedback from real Vampire hardware is welcome. WHAT IT PLAYS - Containers: AVI, QuickTime MOV/MP4, Matroska/MKV, MPEG-TS/M2TS, raw MPEG-1 program streams, raw MJPEG/MPEG-4 Visual streams, and direct HTTP(S)/HLS URLs (including live IPTV playlists and YouTube). - Video codecs: Cinepak, Microsoft Video 1, Microsoft RLE8, uncompressed UYVY422, H.263 / H.263+, Motion-JPEG, MPEG-1, MPEG-2 (with B-frames), MPEG-4 Part 2 (ISO ASP and Microsoft MP42/DIV2), Windows Media Video 7 (WMV1), Windows Media Video 8 (WMV2), and H.264/AVC Baseline/Main/High Profile. - Audio to Paula: PCM, MP2, MP3, AAC-LC (raw/ADTS/LATM), and fixed-point AC-3 (stereo downmix). MP3/AAC decoding reuses the proven MintAMP/Helix code. - Two complete GUI sets over the same player: ReAction (V44) and plain GadTools/Intuition (V37) for a standard AmigaOS 3.0 install, each with matching file, IPTV-directory and YouTube-search browser windows. YOUTUBE URL INPUT The YouTube browser can be used for links as well as searches. Paste a public YouTube URL into ytgui's search field and press Search. ytgui and ytgui-GT recognise normal watch links, /live/, /shorts/, /embed/ and youtu.be links, including links with extra query parameters. The URL is shown as a single selected result ready for Play, using the same playback options as an ordinary YouTube search result. This is useful when a video or live stream was found on another machine: copy or paste the link into MintVID instead of trying to find the same item again through YouTube search. URL recognition itself is local, but actual YouTube playback still needs the normal HTTPS/AmiSSL support. The YouTube search type also includes Hashtags. Enter one tag with or without its leading #; MintVID opens YouTube's dedicated hashtag page and lists its normal video and Shorts renderers through the existing results browser. WMV compatibility notes: WMV1's low-bitrate spatial intra/inter prediction mode is not implemented and is rejected rather than approximated. WMV2's IntraX8 (J-frame) mode is likewise not supported. Normal tested WMV1/WMV2 AVI I/P streams use the native decoders. MintVID's core decoders are regression-tested against ffmpeg using the project's test fixtures where applicable. The portable core is also cross-built and exercised on a big-endian m68k target under QEMU to catch endianness and alignment problems that a little-endian x86 host build can miss - see the project page for details. DEFAULTS AND H.264 SPEED MODES Kalms is the default C2P choice for AGA/HAM playback. If the selected geometry or BitMap layout cannot use its CPU-matched converter, MintVID automatically falls back to the established graphics.library path. RTG ignores C2P choices. TurboGT is the default H.264 mode. Auto selects the same policy. - Quality: full filtering, no deliberate frame skipping. - Balanced: in-loop deblocking disabled; motion compensation stays exact. - Fast: Balanced plus bilinear rather than six-tap interpolation, but still keeps every frame. - Turbo: Fast policy plus B-frame skipping; preserves the P-frame chain. - Turbo+: skips both P- and B-frames, so only keyframes are decoded and shown and that decode stays short enough on a slow CPU to keep audio from stuttering between frames. A last-resort keyframe/slideshow mode, not the normal fastest setting. - TurboGT: the same policy as Turbo, kept as a selectable name. Turbo and TurboGT are now the same setting. TurboGT used to differ by disabling deblocking on keyframes as well, and every mode from Balanced down now does that: leaving some pictures undegraded left the remaining ones being deblocked against stale per-macroblock parameters, which was both incorrect and slow enough that Fast ran slower than Quality. All modes below Quality are substantially faster than in 1.2.0. VIDEO FRAME POLICY Both GUI editions offer a Video selector: - Video: All Frames (default) keeps every decoded picture, even when it is late. Use it when the source is already keeping up, and for live/HLS playback unless the picture is visibly falling behind. - Video: Skip Frames drops decoded pictures that are already late. For H.264, sustained lateness also engages libavc IVD_SKIP_PB to avoid most P/B-picture decode work until the next IDR; confirmed with an overloaded 720p stream under WinUAE, where full-rate decoding was not possible, so a slower Amiga can catch up. Audio, timestamps and decoder selection are unchanged. This is the recommended first change for a stuttering or decode-bound local/heavy video. The command-line equivalents are --throughput (All Frames) and --no-throughput (Skip Frames). A direct network/HLS mrplay invocation defaults to throughput mode; a direct local-file invocation does not. GUI sessions pass the selected policy explicitly. RECOMMENDED STARTING POINTS 68030 ECS/AGA: AGA, lace off, 2x off, modest lightweight codecs. Use Skip Frames only when playback falls behind. 68040/060 AGA: AGA/HAM, Kalms, lace off, 2x off, TurboGT for H.264. Use Turbo+ for audio-first playback and Skip Frames when decode is late. 68040/060 RTG: CGX/P96, TurboGT, Fast buffer Auto, and a low-resolution source before increasing quality. PiStorm/Emu68 should use MintVID040. Live HLS/IPTV: start with All Frames and a low-resolution variant. For direct mrplay use --live-resync after a live stall; --net-queue=24 is a deeper read-ahead choice when free Fast RAM allows it. Keep the complete release drawer together. The AmigaGuide manual is MintVID.guide beside the binaries; MintVID.guide.info supplies its Workbench icon when the file is copied into a drawer. WHAT IT IS NOT MintVID uses a modular decoder architecture, so its supported format list can grow without tying the player to one fixed codec. It is not a video editor or encoder: use ffmpeg or similar on a modern machine to prepare source material, then play the result on the Amiga. Timeline seeking (cursor left/right, 10 seconds at a time, landing on the nearest keyframe) works for local QuickTime MOV/MP4 files; AVI, MKV, and network/live sources don't have a keyframe index yet, so cursor-right stays a fast-forward toggle there instead. Cursor up/down adjust Paula's volume, and once playback starts, the controller's Info: field - and, on RTG (CGX/P96), the video window's own title bar - mirrors a live H:MM:SS/M:SS playhead so you can see where a seek actually landed. INSTALLATION Choose the MintVID030, MintVID040 or MintVID060 drawer for a normal 68030, 68040 or 68060 system respectively. PiStorm/Emu68 users should use MintVID040. Vampire/Apollo 68080 has not yet been validated, so there is no official optimised-build recommendation for it yet. Copy the chosen drawer to your Amiga and keep its contents together. Run MintVID on systems with ReAction V44, or MintVID-GT for the plain GadTools/Intuition interface used by a standard AmigaOS 3.0 installation. IPTV and YouTube browsing are reachable from the controller's menus. Everything else in the drawer (mrplay, iptvgui, ytgui, the GadTools -GT set, mr_decode) is a support binary loaded on demand. Nothing in the release drawer is intended to be split up or copied out on its own. PROJECT / SOURCE https://github.com/boingball/MintVID Clone with submodules to obtain the pinned MintAMP and libavc sources used by the build: git clone --recurse-submodules https://github.com/boingball/MintVID.git SOURCE / LICENSING MintVID's own source is MIT-licensed. It links several dependencies that keep their own licences (GPL-2.0-or-later, Apache-2.0, and RealNetworks RPSL among them). The release archive includes a LICENSES drawer with the MintVID licence and upstream licence/notices available from the checked-out dependencies. See the project README for the full breakdown before redistributing binaries, and provide the corresponding source required by the licences of the binary components you redistribute. SUPPORT If MintVID is useful, or YouTube on an Amiga made you laugh, you can help keep the hardware testing and development going at: https://buymeacoffee.com/boingball