![]() |
![]() |
#281 | ||||
Registered User
Join Date: Nov 2016
Location: USA
Posts: 136
|
Quote:
AGABlaster is optimized for AGA systems because I was curious how well the original AGA architecture would support video display with its 64bit graphics access mode. However, the most distinctive feature is probably that AGABlaster skips graphics data on disk, if it is displaying a video on an Amiga that has not enough i/O bandwidth. In this case it only reads the frame header and the audio data, but skips in some frames the graphics data to maintain a smooth video display rate. Hence, the audio should always be perfect, only the frame rate is reduced to the bandwidth of the system. And for 32bit disk controllers it turned out that 32-bit alignment is important otherwise the driver realigns the data which reduces the framerate. That's where the padding comes from, because this was an easy way to make this work. However, the audio chunk can also be 32-bit aligned by adjusting the frequency and that's what the next version 1.1 will do by default. Quote:
Quote:
Quote:
cheers! |
||||
![]() |
![]() |
#282 | ||||
Registered User
Join Date: Jul 2017
Location: Oxford
Posts: 107
|
I'll start with a further question, and reply to the previous points below.
Question: I'm converting from `.mkv` videos to `.cdxl`. Conversion works very well, except the audio always pops loudly before the end of the clip, as if some random bytes were added for some reason. The same issue is not present in the source files. This is very annoying and I am afraid it would even damage my audio equipment in the long run. Any ideas on what could be happening here? Now quoting the previous message: Quote:
Quote:
Quote:
![]() Quote:
EDIT: finally found the time to clean up my local changes and create a pull-request to add official support for MacOs to agaconv... although the changes are really minimal, this is my first-ever pull-request on Github, please let me know if anything looks wrong! EDIT: n2, I discovered that Audacity can actually display audio in a CDXL file (I presume because it either has hidden CDXL support, or because it has heuristics to detect raw audio), and this is how the sample looks towards the end. I'll see if I can find the root cause of it and fix it! (see attachment). N.B.: the extracted raw PCM from ffmpeg does not have this issue, so this must be where the conversion happens (padding of non-zero values maybe?). EDIT n3: I think I fixed it! The audio-encoder would read past eof when the audio length has to be adjusted, and then +128 is added to make it unsigned. This produces a spike 0-128 if EOF is reached (0 is returned by istream::get()). EDIT n4: Added commit with audio fix to my existing pr. Now I can get back to finishing my game engine... ![]() Last edited by emiespo; 13 April 2024 at 12:51. |
||||
![]() |
![]() |
#283 | |||
Registered User
Join Date: Nov 2016
Location: USA
Posts: 136
|
Quote:
The target buffer that AGABlaster uses is 64Bit aligned to make use of the 64Bit AGA graphics mode. The 32bit alignment on disk is about the IO device driver (I use a 32bit IO controller, so on older systems it might not make a difference), but with my Amiga I was able to produce a 2x slowdown when not using a 32bit alignment on disk (AGABlaster reads the chunks separately, when loading a file as a whole this is not an issue, only if you seek around and read chunks as AGABlaster does). Quote:
There were several games that used CDXL videos with AGA8 but only 12-bit color range. I once tested this with one game and AGABLaster did indeed play those cutscenes (it was some space ship scene). But it was only 12bit color palette because the CDTV used CDXL videos with 12bit color palette. Now, adding 3-byte colors instead of 2-byte colors in the color palette section is straight-forward, but this was a custom change. Quote:
That's interesting. Your fix does fix it, but I will look into this more. It shouldn't read more bytes than the PCM has (the frequency is adjusted before and then the PCM file is extracted) Anyways, I am looking into the patches! |
|||
![]() |
![]() |
#284 | |||
Registered User
Join Date: Jul 2017
Location: Oxford
Posts: 107
|
Quote:
Quote:
Quote:
![]() Surely there’s a more involved (and much better) way of fixing it! Thanks to that, I also resumed working on my game engine. Once it looks decently good, I’ll post a preview somewhere. |
|||
![]() |
![]() |
#285 | |
Registered User
Join Date: Jan 2023
Location: Toronto
Posts: 440
|
Quote:
|
|
![]() |
![]() |
#286 | |
Registered User
Join Date: Nov 2016
Location: USA
Posts: 136
|
Quote:
Thanks for the bug fix, it was the correct fix! ffmpeg doesn't extract the exact length based on the frequency, and therefore the very last frame had sometimes some chunk-bytes added. This may have been what you heard as 'spike'. |
|
![]() |
![]() |
#287 |
Registered User
Join Date: Nov 2016
Location: USA
Posts: 136
|
AGAConv 1.1.0 released.
* Added option for selecting custom and standard CDXL formats (--format=ctm-opt | std-opt | std-fixed ) * 24/12-bit color modes supported with all formats. * HD-sized CDXL videos are playable with ffplay (ffplay only supports 12-bit CDXL, but the resolution of 1920x1080 works with 8 bitplanes and 12-bit colors - this mode was also used in CDXL videos of some games in the 90s). PPA upgrade package available for Ubuntu 24.04, 22.04, 20.04 Can be used on Windows with Microsoft Ubuntu App from Microsoft App Store. Can be compiled on MacOS from source (Thanks to emiespo!) Webpage: https://cutt.ly/AGAConv |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
PadoraBasic: Player Cdxl, Anim, even more | AMIGASYSTEM | Amiga scene | 0 | 12 March 2017 10:06 |
CDXL Player | Retro1234 | support.Apps | 2 | 06 January 2017 10:18 |
CDXL Toolkit | dkovacs | request.Apps | 16 | 23 November 2015 09:41 |
What is the best Amiga Cdxl and Anim Player? | hansel75 | support.Apps | 3 | 02 February 2013 06:08 |
Looking for CDXL Toolkit | cane | request.Apps | 3 | 05 August 2004 22:49 |
|
|