KinoAmp is a DVD and MPEG1/2 movie player. Playback can be on the desktop or full screen and controls are provided with an On Screen Display for brightness, contrast, colour, and volume. When using the desktop, and multitasking, variable zoom and aspect ratio is provided. Multitasking operation supports a simple control panel with basic player controls and a selectable skin.
Download the latest version and its source code.
To use DiskSample as audio codec, the following module is required:
DiskSample module version 0.57 or later.
Version 0.57, 2022-09-17
- Add AAC (ADTS) for MPEG TS files.
- Fix corner case causing internal memory corruption in multitasking mode.
Version 0.56, 2022-02-26
- Added on screen controls, shown when moving the mouse, useful for full-screen mode.
- Added neon YUV to RGB conversion routines, effects mainly noticable on Full-HD streams.
On Pi3, 16-bit routine is about 25% faster, giving an overall fps increase of 20%.
On Pi3, 32-bit routine is about 10% faster, giving an overall fps increase of 10%.
- Fixed (bi)linear scaling of ARGB15 and ABGR15 modes (i.e. 32K modes with 1-bit alpha channel).
- Added neon 16bpp (bi)linear scaling routines, highly noticable on scaling DVD to Full-HD.
On Pi3, the routine is about 60%, giving an overall fps increase of 50%.
- Added neon YUV to YV16/YV12/NZ12/NZ21 conversion routines (overlays).
On Pi3, the routine is about 250% faster, giving an overall fps increase of 20%.
- Fix DVD commands. Arithmetic is saturated.
- Fix DVD commands with resume cell.
- Fix DVD JumpSS_VTSM command (title part).
- Improved window resizing and size toggling.
- Fix issue where OSD is initially redrawn on background instead of overlay.
Version 0.55, 2021-07-28, updated on 2021-08-10 to include DVDRegion
- Added configuration of default language (in audio section).
- Play DVD directly from DVD drive (requires CDFSDriver 2.42 or a SCSI drive).
- Use cell duration for still cells without any still time.
- Fix IFO loading of titles without any menu.
- Support for interleaved VOBUs (like Star Wars opening scroll text in multiple languages).
These are similar to multiple angles but without support for switching to another angle.
- Fix navigation issue (Star Wars bonus DVD in the photo gallery).
- Fix desync with PCI info causing long delays in menu buttons appearance.
- Fix menu command LinkPTTN.
- Always started with angle 1 even when menu asked to start playing another angle.
- Menu may different button groups flagged for normal, wide, pan & scan and we must use the one flagged as normal.
Subtitles/menus for widened/pan-scanned versions are overlays of the video in their corrected dimensions and aspect ration and since I just merge the subtitle/menu with the original image I always use the normal subtitle/menu, hence I must also use the matching button group.
- Define separate subtitles for subtitles with multiple delayed set of commands.
This fixes 'Le ruban de Moebius' which fist shows the subtitle as invisible before showing it with its ture colors.
- Fix to handle invisible menu buttons:
Basically, A subtitle is a 4 color image, with 4 transparency levels and with the 4 color codes mapped to YUV colors from a palette of 16 colors stored a title level.
Now a menu is just a forced subtitle and buttons are rectangles within them that must be displayed when selected in their own 4 transparency levels and color mappings.
So you just show the button that is selected, right?
Wrong, you must also show the rest of the menu with his transparency levels/color mappings.
This allows for menus where you mask/dim everything on the video except for the rectangle corresponding to the selected button by making that button invisible.
- Aspect ratio in DVD IFO overwrites aspect ratio of MPEG stream.
- Fix to display only a single forced subtitle when multiple languages are present.
- Fix for audio remaining muted if no audio in first VOBU.
Version 0.54, 2020-12-23
- DVD IFO structure is now decoded.
- Titles and chapters can now be selected and chapters are read in the correct order.
- DVD menus are working.
- Add option to prevent usage of overlays in multitasking mode.
- Finer seek positionning.
- Use wheel mouse to control volume.
- Fix crash when toggling scrollbars on/off.
- Fix a NPE caused by subtitles.
- Fix for some TS streams failing to loop.
- Fix slight shaking of image in Blend (x2) deinterlacing mode.
- Switch to another subtitle channel didn't show active subtitle, was waiting for the next one.
- Fix broken angle support.
Version 0.52, 2020-04-05
- Fix 'Could not find a starting point in audio/video' error on slow starting medias like DVDs.
- Subtitles from non-displayed channels were not discarded once expired.
- Handle VOBs with interleaved angles (use Ctrl+Shift+Tab to cycle).
Version 0.51, 2020-03-25
- Add neon version of (bi)linear interpolation in 16M colors.
- Read DVD subtitles. Limitation: colors info not known.
- Drop VIDEO_TS folder to read main VOBS of DVD as a single one.
- Add pane flag to toolbar to prevent RISC OS from continuously attempting to bring the window before its toolbar while dragging the title bar.
Version 0.50, 2019-08-19
- Optimise de-interlacing.
- Add neon versions of idct, motion compensation and de-interlacing.
- Some of the previous changes where limiting the display rate while preforming speed tests with the display all frames options.
- Fix ZeroPain fo .ts streams without program table.
- Fix in frame timestamps, most where lost in TS streams.
- Fix libmpeg2 aspect ratio, ignore display extention since we show everything.
- Fix rounding of chroma motion vectors.
- Improve a little bit handling of corrupted streams.
Version 0.49, 2019-08-04
- Support for MPEG-TS streams (MPEG-1/2 video only, MP2/MP3/AC3/LPCM audio only).
- Fix 420 chroma issue in blend deinterlacing routines.
- Cope with aspect ratio and image size changes.
- Internal buffer increased from 1.75MB to 4MB to cope with larger spacing between audio packets on HD streams.
- Try to spend more time on decoding next frame(s) instead of waiting to display current frame.
- Improve frame/field dropping decision in x2 deinterlacing modes.
- Fix issue with output frozen on start due to absence of timestamp on first image (while sound as timestamp).
- Fix issue with player massively dropping frames at beginning thinking he is far too late.
- Fix issue with player not always rendering the 1 or 2 last frames.
- Faster output to yuv overlays.
- Fix issue with aspect ratio when resizing window with overlays.
- Fix issue in playlist with videos stopping to use overlays after playing a video where only the sound part is supported.
- Initialise chroma planes to 0x80 to make skipped blocks at the beggining of corrupted streams less visible (green blocks).
- Redesign slightly libmpeg2's slice.c to better detect and report out of bounds motion vectors.
Version 0.48, 2018-08-26
- Add support for NV12, NV21, UYVY, YUY2, YV12, YV16, (A | T) (RGB | BGR) (12 | 15 | 16 | 32) overlays.
- Add support for screen modes with alpha channel (A (RGB | BGR ) (12 | 15 | 32) ).
- Fix for using the first configuration (i.e. non-alpha one) when more than one is possible for a given screen resolution.
- Slight improvement of bilinear scaler for 16M modes by inverting scaling order.
- Improved linear scaler speed.
- Fix incorrect required video memory size.
- Restore current desktop mode on exit instead of configured wimp mode.
Version 0.47, 2018-03-03
- Replaced blend deinterlacing algorythm with a better one.
- Added aspect ratio alteration with pan & scan or stretching.
- Improved fullscreen performance: old code was to switch banks and wait for VSync just after plotting the screen as it is not safe to write to the screen againt before a VSync occurs. Now instead of waiting for the VSync we save the VSync counter (OS_Byte 176) and just before plotting the next image we wait for the VSync counter to change, which likely already occured while decoding the next image.
- Refresh buttons state in control panel when switching to multitasking mode.
- Added time spent waiting for VSync to logged statistics.
- Update TimerMod to version 4.17 for compatibility with latest machines.
- Increased circular input buffer from 1MB to 1.75MB otherwise audio packets are read to late for HDTV.
- Fixed crash caused by alignment issue in (bi)linear scalers for 16-bit colour modes.
- Fixed redraw issues when menu displayed over part of the image when bi(linear) scaler is used with vertical scaling = 100%.
- Fixed flashing while zooming in full screen, previous image was not cleared in all screen banks.
- Fixed flashing in full screen with IntelDMA active (DMA transfer list changes with screen bank).
- Fixed long standing scrolling issues.
- Fixed banner not displayed in full screen due to screen banking.
Version 0.46, 2017-03-09
- Fix issues with selection of RGB screen modes.
Version 0.45, 2017-03-02
- Fix issues with selection of RGB screen modes.
- Rewrote deinterlacing with 4 methods: None, Blend, Blend (x2), Fields (x2).
- Added new scaler methods: Linear and Bilinear.
- Use tripple-buffering (memory permitting) and VSync screen updates in full-screen modes, which is a little bit slower but eliminate tearing effets (if rendering is not too slow).
- Improved speed of internal scaler in 4K, 32K, 64K on post RISC-PC machines.
Version 0.44, 2016-05-29
- Read in chunks of 128K instead of 64K as it seems to make playing over LanManFS less jerky.
- Sound could become out of sync by several seconds when large delays occured and sound buffer became empty.
- When fitting to full screen and a 1:1 pixel aspect ratio, if AnyMode is present, instead of zooming use image size as screen mode size and let the hardware do the resizing for us.
- Fix aspect pixel ratio in multitasking mode when size is not locked to window size.
- Activated and bug fixed stacking of decoded frames.
- Reorganize player.h to work around a bug in C compiler 5.61.
- Improved speed of internal scaler.
- Added deinterlacing by doubling frame rate (update odd lines, then even lines, ...).
- Updated defaults to be more appropriate for newer machines.
Version 0.43, 2015-12-04
- Support for 4K colour modes.
- Automatic detection of inverted colour order (RISC OS 5.21+).
- Sprites with inverted colour order are now save using the appropriate RISC OS 5.21+ mode words.
- Fixes crashes in mono 32K fast zoom x4.
- Fixes for incorrect initial pane position.
- Fixes null pointer dereference on startup.
- Invert RGB and BGR in doc (!Paint signals RISC PC compatible sprites as BGR).
Version 0.42, 2010-12-19
- Front-end rewritten into multiple panes.
- Now offers 4 replay modes (Multitasking, Desktop, Full-Screen, Manual) with individual settings.
- Fit to screen doesn't any more force the use of a scaler but selects the most appropriate fast display routine (50%, 100%, 200%, 300% or 400%).
- When the scaler is used:
- zoom changes are in steps of 1%.
- pixel aspect can be taken into account to resize the image.
- You can use F5 to F8 to switch directly to a given replay mode.
- Output can be made as BGR instead of RGB to cope with new hardware.
- Fixed rendering of YUV444 in 64K colour modes.
- Revert to the use of system scaler for unsupported screen modes such as mode with less than 256 colours.
- Internal code cleanup: common config.c/.h between front-end and player, reorganisation and commenting of display_setup() and player_displayLastFrame().
Version 0.40, 2009-01-18
- Added support for 64K colour modes.
- Fixed crash when switching from colour to monochrome with OSD volume bar visible.
- Fixed sound become muted when looping (AMPlayer only).
- Ensure logging is off by default to allow multiple windows.
Version 0.39, 2008-06-07
- Fixed bug truncating skin names introduced in previous version.
- Alter behaviour of Previous/Next in Random mode.
Version 0.38, 2008-05-25
- Fixed directory scanning related bugs (long pathnames or filenames).
You can also no double-click on the main window to switch between full-screen and windowed mode.
Version 0.37, 2008-02-25
- Rewrite of frame skipping process. Fixes some rare instances
of attempting to decode frames where the reference frames were skipped,
and fixes small pauses seen on some systems.
Version 0.36, 2008-01-26
- Better sound stability and refined frame skipping process.
- Added dynamic start/stop of audio saving (key Ctrl+A).
- Added dynamic colour/monochrome switching option (key C).
- Added frame rate to OSD timing info.
- Fix to avoid infinite waits due to corrupted stream timing info.
Version 0.35, 2007-03-11
- Support for the very rare MPEG-2 YUV444 format.
- Extra checks on MPEG stream corruption.
- Fixed bug sometime causing the non-decoding of the last block in slice.
- Modified handling of corrupted streams to avoid the error "Decoding waiting indefinitely after audio/video".
Version 0.34, 2006-02-10
- AC3 and PCM audio supported with the help of DiskSample 0.35.
- Audio stream selection from the player window menu.
- Added 'Scaler' and 'Force use of scaler' options to be able to benefit from the hardware acceleration of sprite plotting.
- Iyonix specific code for accelerated display at 100% zoom with the help
of IntelDMA module.
- Workaround for A9Home (see help file).
- New 'Fit to screen' option.
- Colour conversion
- Set palette to 256 greys in full screen 8bpp when Monochrome option is set.
- Added monochrome colour conversion routines for 8bpp and 8bpp-grey.
- Added support for brightness and contrast in all monochrome color conversions.
- Modified 8bpp and 8bpp-grey colour conversions for best fit of palette in YUV space instead of in RGB space (build switch).
- MPEG decoding
- Libmpeg2 now totally ignore chroma blocks when Monochrome options is set
to give a large performance boost.
- Libmpeg2 API rewritten to move calls to display functions out of the library with new sanity checks to avoid crashes after seeking to a new position.
- Take account of MPEG fields repetitions for frame duration (30->24 fps adaptation).
Previous versions are available from Peter Everett.