Skip to content

BlitterStudio/RiVA

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RiVA

AmigaOS/m68k MPEG-1 player

This is the latest update to the fastest MPEG player available on the classic 68k Amiga platform. It is based on the work of Stephen Fellner and László Török, extended by a lot of additional improvements in terms of runtime performance and audio/visual quality. RiVA served as the prominent testcase in the development cycle of the Apollo Core AMMX instruction set extension.

Two binaries are provided in this archive, a classic m68k compatible build (68040+) and an AMMX build, exclusive to Apollo Core Gold 2 and newer.

Please note that mpega.library is required for audio decoding.

Changes

Changes since 0.54

  • fixed CyberGraphX
  • added check for MPEGA errors and insert empty frames in such cases
  • added "f" as hotkey for fullscreen/windowed mode switching
  • removed Pamela16 from HQAUDIO (incompatible audio changes in V4 core)
  • removed PIP from list of default display modes (PIP crashes on BPPC)
  • added workarounds for PPC based mpega.library variants (including libMAD)

Changes since 0.53

  • fixed DHAM6 and DHAM8 modes in 68k build
  • optimized DHAM8 as a little apology for breaking it in the first place (significantly higher speed)
  • added 14 Bit audio output option (HQAUDIO)
  • added 16 Bit PAMELA audio output on Vampire V4 (HQAUDIO)
  • fixed and improved A/V sync
  • moved video timing relevant flag handling to safer places

Input steams / Quickstart:

The input format supported by RiVA is MPEG-1 program streams. Modern video formats can be converted to MPEG-1 using tools like ffmpeg or mencoder.

Examples (assuming 16:9 aspect ratio content): ffmpeg -i source.mp4 -vcodec mpeg1video -filter:v scale=640:360 -b:v 1500k -maxrate 2200k -bf 3 -ac 2 -acodec mp2 -b:a 128k dest_640x360.mpg mencoder -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=1500 -o dest_640x360.mpg -aid 1 -vf scale=640:360 -ofps 24 -oac lavc -ovc lavc -lavcopts acodec=mp2:abitrate=128:vcodec=mpeg1video:vbitrate=1500:keyint=15:mbd=2:aspect=16/9:vmax_b_frames=3
source.mp4

RiVA should work well with default settings and the aforementioned encoding parameters on Apollo Core Gold2 and later. For optimal runtime performance, use full screen on SAGA RTG (make sure, you have active screenmodes with 16 Bit depth), along with Paula audio output. AHI sound output will slow down the playback significantly. Windowed mode on Workbench will also be much slower than the fullscreen mode. Some additional performance improvement is possible by lower audio quality (e.g. commandline arguments AUDIOFREQDIV=2 AUDIOQUALITY=0).

Building RiVA

The only assembler supporting the extended Apollo instruction set is VASM. At least version 1.7h of VASM is required. Use the -devpac mode of VASM. Selection between the pure 68k build and the apollo build can be done with the APOLLO_CLIP master switch (0/1).

A script (buildriva.sh) is provided to build the single binary with the required options using VASM. Please note that you'll need the following SDKs in addition to the usual Amiga NDK:

  • Picasso96
  • Cybergraphx
  • MPEGA
  • AHI
  • Vampire (included here)

About

AmigaOS/m68k MPEG-1 player

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Assembly 84.1%
  • M 15.5%
  • Other 0.4%