Help encoding divx movies for dreamcast
- crazyrom
- Ex-Help Forum Mod
- Posts: 1112
- https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
- Joined: Wed Mar 20, 2002 11:09 pm
- Location: Your mom's bedroom
- Has thanked: 0
- Been thanked: 0
- Contact:
Help encoding divx movies for dreamcast
Hi long time no see... I used to make divx movies for the dreamcast i think with virtuadub can anybody tell me the setting i should use to make the divx flile work on the dreamcast... thanks...
- PH3NOM
- DC Developer
- Posts: 576
- Joined: Fri Jun 18, 2010 9:29 pm
- Has thanked: 0
- Been thanked: 5 times
Re: Help encoding divx movies for dreamcast
Whats up man?
Just a coincidence, I have recently decided to try again at writing an XviD Player for DC.
My idea was to hook up to LibXviD and LibMPEG2, and maybe ask BlueCrab about adding things to Kos-Ports. ( It could be convenient for game devs to have a video player out of the box... )
I am using the libxvid_1.3.0 as I used in DCMC 2.1.
However I have written a new player, that currently maxes the DC's resources out by using all available memory and multiple threads.
The stream buffers allow the decoder to run ~3 seconds ahead of the playback to fully utilize the CPU resources.
The player uses a producer / consumer threading model, that uses 3 threads and 3 buffers to handle the 3 main components:
-Main thread tasks:
a.) Read the file chunk (avi or mpeg, currently only avi supported)
b.) Decode Chunk ( Audio or Video ) into local buffer ( not shared by threads )
c.) Push decoded chunk into shared stream buffer ( thread safe )
-Audio thread tasks:
a.) Sleep until AICA sound stream requests more audio samples
b.) Pop audio samples out of shared stream buffer ( thread safe )
c.) Copy audio samples to the AICA for playback
-Video thread tasks:
a.) Pop video out of shared stream buffer ( thread safe )
b.) Copy video frame to the PVR
c.) Using a hardware timer and a given frame rate, sleep until a frame is to be displayed
d.) Render the frame on the PVR
Just a technical note, the stream buffers I wrote use an efficient circular buffer to store the stream data. This is more efficient than, for example, the mp3 and ogg players in KOS that instead, shift the entire buffer back every single time data is read from the buffer.
Here is the current build, it will play a clip "sample.avi" located at the root of the CD, i.e. in the same folder as your 1st_read.bin.
I have tested some 352x192p, 23.976fps XviD clips with MP3 Stereo 192kbps.
You should be able to use any modern video encoder you like, just keep the pixel count around 352x192 at 23.976 fps.
Keep in mind it is still work in progress, but it should be stable enough for testing.
Get the binary here: Get the source here:
Just a coincidence, I have recently decided to try again at writing an XviD Player for DC.
My idea was to hook up to LibXviD and LibMPEG2, and maybe ask BlueCrab about adding things to Kos-Ports. ( It could be convenient for game devs to have a video player out of the box... )
I am using the libxvid_1.3.0 as I used in DCMC 2.1.
However I have written a new player, that currently maxes the DC's resources out by using all available memory and multiple threads.
The stream buffers allow the decoder to run ~3 seconds ahead of the playback to fully utilize the CPU resources.
The player uses a producer / consumer threading model, that uses 3 threads and 3 buffers to handle the 3 main components:
-Main thread tasks:
a.) Read the file chunk (avi or mpeg, currently only avi supported)
b.) Decode Chunk ( Audio or Video ) into local buffer ( not shared by threads )
c.) Push decoded chunk into shared stream buffer ( thread safe )
-Audio thread tasks:
a.) Sleep until AICA sound stream requests more audio samples
b.) Pop audio samples out of shared stream buffer ( thread safe )
c.) Copy audio samples to the AICA for playback
-Video thread tasks:
a.) Pop video out of shared stream buffer ( thread safe )
b.) Copy video frame to the PVR
c.) Using a hardware timer and a given frame rate, sleep until a frame is to be displayed
d.) Render the frame on the PVR
Just a technical note, the stream buffers I wrote use an efficient circular buffer to store the stream data. This is more efficient than, for example, the mp3 and ogg players in KOS that instead, shift the entire buffer back every single time data is read from the buffer.
Here is the current build, it will play a clip "sample.avi" located at the root of the CD, i.e. in the same folder as your 1st_read.bin.
I have tested some 352x192p, 23.976fps XviD clips with MP3 Stereo 192kbps.
You should be able to use any modern video encoder you like, just keep the pixel count around 352x192 at 23.976 fps.
Keep in mind it is still work in progress, but it should be stable enough for testing.
Get the binary here: Get the source here: