fix typo on audio rbuf read
This commit is contained in:
parent
e102d7c198
commit
19e48a4d6a
@ -1,27 +1,15 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
video1="video.mp4"
|
video1="catch.mp4"
|
||||||
palette1="palette1.png"
|
palette1="palette1.png"
|
||||||
# output1="out_badapple.mp4"
|
# output1="out_badapple.mp4"
|
||||||
output1="out1/out_%d.bmp"
|
output1="out/out_%d.bmp"
|
||||||
|
|
||||||
video2="2d.mp4"
|
filters="scale=256x192:flags=lanczos:force_original_aspect_ratio=decrease,pad=256:192:-1:-1:color=black,fps=24"
|
||||||
palette2="palette2.png"
|
|
||||||
output2="out2/out_%d.bmp"
|
|
||||||
# output="output.mp4"
|
|
||||||
|
|
||||||
filters="scale=256x192:flags=lanczos:force_original_aspect_ratio=decrease,pad=256:192:-1:-1:color=black,fps=30"
|
|
||||||
|
|
||||||
# video
|
# video
|
||||||
ffmpeg -i $video1 -vf "$filters,palettegen=max_colors=256:reserve_transparent=0:stats_mode=diff" -y $palette1
|
# ffmpeg -i $video1 -vf "$filters,palettegen=max_colors=256:reserve_transparent=0:stats_mode=diff" -y $palette1
|
||||||
ffmpeg -i $video1 -i $palette1 -filter_complex "$filters[x];[x][1:v]paletteuse=dither=none" -y $output1
|
ffmpeg -i $video1 -i $palette1 -filter_complex "$filters[x];[x][1:v]paletteuse=dither=sierra3" -y $output1
|
||||||
|
|
||||||
# audio
|
# audio
|
||||||
ffmpeg -i $video1 -f s16le -vn -ac 2 -ar 22050 -y music1.raw
|
# ffmpeg -i $video1 -f s16le -vn -ac 2 -ar 22050 -y music1.raw
|
||||||
|
|
||||||
# video
|
|
||||||
# ffmpeg -i $video2 -vf "$filters,palettegen=max_colors=256:reserve_transparent=0:stats_mode=diff" -y $palette2
|
|
||||||
# ffmpeg -i $video2 -i $palette2 -filter_complex "$filters[x];[x][1:v]paletteuse=dither=none" -y $output2
|
|
||||||
|
|
||||||
# # audio
|
|
||||||
# ffmpeg -i $video2 -f s16le -vn -ac 2 -ar 22050 -y music2.raw
|
|
@ -208,7 +208,7 @@ int main()
|
|||||||
{
|
{
|
||||||
// Convert(ASSETS_PATH "out1/", ASSETS_PATH "palette1.png", "../nitrofs/", "data_fastlz", 1);
|
// Convert(ASSETS_PATH "out1/", ASSETS_PATH "palette1.png", "../nitrofs/", "data_fastlz", 1);
|
||||||
// Convert(ASSETS_PATH "out1/", ASSETS_PATH "palette1.png", "../nitrofs/", "data_rle", 2);
|
// Convert(ASSETS_PATH "out1/", ASSETS_PATH "palette1.png", "../nitrofs/", "data_rle", 2);
|
||||||
Convert(ASSETS_PATH "out1/", ASSETS_PATH "palette1.png", "../nitrofs/", "main", 3);
|
Convert(ASSETS_PATH "out/", ASSETS_PATH "palette1.png", "../nitrofs/", "main", 3);
|
||||||
// Convert(ASSETS_PATH "out2/", ASSETS_PATH "palette2.png", "../nitrofs/", "sub");
|
// Convert(ASSETS_PATH "out2/", ASSETS_PATH "palette2.png", "../nitrofs/", "sub");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
66
src/main.cpp
66
src/main.cpp
@ -26,14 +26,14 @@
|
|||||||
|
|
||||||
// TODO: hardcode fix
|
// TODO: hardcode fix
|
||||||
#define CHUNK_SIZE 8
|
#define CHUNK_SIZE 8
|
||||||
#define FRAMERATE 30
|
#define FRAMERATE 24
|
||||||
#define VIDEO_TOTALFRAME 6584
|
#define VIDEO_TOTALFRAME 3268
|
||||||
|
|
||||||
#define VIDEO_RBUF_LEN CHUNK_SIZE*6
|
#define VIDEO_RBUF_LEN CHUNK_SIZE*8
|
||||||
#define VIDEO_RBUF_BUFFER FRAME_SIZE
|
#define VIDEO_RBUF_BUFFER FRAME_SIZE
|
||||||
#define VIDEO_TEMP_SIZE 96100
|
#define VIDEO_TEMP_SIZE 204000
|
||||||
|
|
||||||
#define MMSTREAM_BUF_SIZE 16*200
|
#define MMSTREAM_BUF_SIZE 800
|
||||||
#define MUSIC_RBUF_SIZE 96000*2
|
#define MUSIC_RBUF_SIZE 96000*2
|
||||||
|
|
||||||
void wait_forever(const char* msg);
|
void wait_forever(const char* msg);
|
||||||
@ -313,8 +313,8 @@ int main(void) {
|
|||||||
{
|
{
|
||||||
Raylib::nocashMessageFormat("preload audio");
|
Raylib::nocashMessageFormat("preload audio");
|
||||||
int len = music_rb->GetFree();
|
int len = music_rb->GetFree();
|
||||||
fread(music_rb->GetTail(), len, 1, file_music);
|
int adv = fread(music_rb->GetTail(), sizeof(char), len, file_music);
|
||||||
music_rb->Advance(len);
|
music_rb->Advance(adv);
|
||||||
Raylib::nocashMessageFormat("preload done");
|
Raylib::nocashMessageFormat("preload done");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -335,10 +335,9 @@ int main(void) {
|
|||||||
|
|
||||||
timerStart(0, ClockDivider_1024, TIMER_FREQ_1024(FRAMERATE), TimerCallback);
|
timerStart(0, ClockDivider_1024, TIMER_FREQ_1024(FRAMERATE), TimerCallback);
|
||||||
irqSet(IRQ_VBLANK, []{
|
irqSet(IRQ_VBLANK, []{
|
||||||
printf("\033[3;2H\033[Kno frame: %i\n", noframe);
|
|
||||||
printf("\033[4;2H\033[Kvideo buffer: %i frames\n", videomain_rb->count);
|
printf("\033[4;2H\033[Kvideo buffer: %i frames\n", videomain_rb->count);
|
||||||
printf("\033[5;2H\033[Kmusic buffer: %i bytes\n", music_rb->count);
|
printf("\033[5;2H\033[Kmusic buffer: %i bytes\n", music_rb->count);
|
||||||
|
if (noframe) printf("\033[6;2H\033[Kno frame: %i\n", noframe);
|
||||||
|
|
||||||
// static int counter = 0;
|
// static int counter = 0;
|
||||||
// counter++;
|
// counter++;
|
||||||
@ -434,6 +433,7 @@ int ThreadMusic(void *arg)
|
|||||||
{
|
{
|
||||||
int free = music_rb->GetFree();
|
int free = music_rb->GetFree();
|
||||||
int linear = music_rb->LinearWriteSize();
|
int linear = music_rb->LinearWriteSize();
|
||||||
|
int adv = 0;
|
||||||
|
|
||||||
// memset(music_buffer_temp, 0, MUSIC_RBUF_SIZE);
|
// memset(music_buffer_temp, 0, MUSIC_RBUF_SIZE);
|
||||||
// fread(music_buffer_temp, free, 1, file_music);
|
// fread(music_buffer_temp, free, 1, file_music);
|
||||||
@ -442,17 +442,17 @@ int ThreadMusic(void *arg)
|
|||||||
if (free < linear)
|
if (free < linear)
|
||||||
{
|
{
|
||||||
// memcpy(music_rb->GetTail(), music_buffer_temp, free);
|
// memcpy(music_rb->GetTail(), music_buffer_temp, free);
|
||||||
fread(music_rb->GetTail(), 1, free, file_music);
|
adv += fread(music_rb->GetTail(), 1, free, file_music);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// memcpy(music_rb->GetTail(), music_buffer_temp, linear);
|
// memcpy(music_rb->GetTail(), music_buffer_temp, linear);
|
||||||
// memcpy(music_rb->buffer, music_buffer_temp, free-linear);
|
// memcpy(music_rb->buffer, music_buffer_temp, free-linear);
|
||||||
fread(music_rb->GetTail(), 1, linear, file_music);
|
adv += fread(music_rb->GetTail(), 1, linear, file_music);
|
||||||
fread(music_rb->buffer, 1, free-linear, file_music);
|
adv += fread(music_rb->buffer, 1, free-linear, file_music);
|
||||||
}
|
}
|
||||||
|
|
||||||
music_rb->Advance(free);
|
music_rb->Advance(adv);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -538,7 +538,7 @@ mm_word on_stream_request( mm_word length, mm_addr dest, mm_stream_formats forma
|
|||||||
case MM_STREAM_16BIT_STEREO: samplesize = 4; break;
|
case MM_STREAM_16BIT_STEREO: samplesize = 4; break;
|
||||||
}
|
}
|
||||||
int len = length*samplesize;
|
int len = length*samplesize;
|
||||||
int linear = music_rb->LinearWriteSize();
|
int linear = music_rb->LinearReadSize();
|
||||||
|
|
||||||
// Raylib::nocashMessageFormat("%i", len);
|
// Raylib::nocashMessageFormat("%i", len);
|
||||||
|
|
||||||
@ -547,33 +547,33 @@ mm_word on_stream_request( mm_word length, mm_addr dest, mm_stream_formats forma
|
|||||||
// memcpy(dest, music_buffer_temp, len);
|
// memcpy(dest, music_buffer_temp, len);
|
||||||
// return length;
|
// return length;
|
||||||
|
|
||||||
if (len < linear)
|
|
||||||
{
|
|
||||||
memcpy(dest, music_rb->GetHead(), len);
|
|
||||||
music_rb->Skip(len);
|
|
||||||
return length;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Raylib::nocashMessageFormat("linear %i", linear);
|
|
||||||
memcpy(dest, music_rb->GetHead(), linear);
|
|
||||||
// memcpy((char*)dest+linear, music_rb->buffer, len-linear);
|
|
||||||
music_rb->Skip(linear);
|
|
||||||
return linear/samplesize;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// if (len < linear)
|
// if (len < linear)
|
||||||
// {
|
// {
|
||||||
// memcpy(dest, music_rb->GetHead(), len);
|
// memcpy(dest, music_rb->GetHead(), len);
|
||||||
|
// music_rb->Skip(len);
|
||||||
|
// return length;
|
||||||
// }
|
// }
|
||||||
// else
|
// else
|
||||||
// {
|
// {
|
||||||
// // Raylib::nocashMessageFormat("linear %i", linear);
|
// // Raylib::nocashMessageFormat("linear %i", linear);
|
||||||
// memcpy(dest, music_rb->GetHead(), linear);
|
// memcpy(dest, music_rb->GetHead(), linear);
|
||||||
// memcpy((char*)dest+linear, music_rb->buffer, len-linear);
|
// // memcpy((char*)dest+linear, music_rb->buffer, len-linear);
|
||||||
|
// music_rb->Skip(linear);
|
||||||
|
// return linear/samplesize;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// music_rb->Skip(len);
|
|
||||||
// return length;
|
if (len < linear)
|
||||||
|
{
|
||||||
|
memcpy(dest, music_rb->GetHead(), len);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Raylib::nocashMessageFormat("linear %i", linear);
|
||||||
|
memcpy(dest, music_rb->GetHead(), linear);
|
||||||
|
memcpy((char*)dest+linear, music_rb->buffer, len-linear);
|
||||||
|
}
|
||||||
|
|
||||||
|
music_rb->Skip(len);
|
||||||
|
return length;
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user