Added compressed audio support. Uses LAME by default.
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
md_raw_file times 50 db "rawvideo.bin" @ Only for Raw Video
|
md_raw_file times 50 db "rawvideo.bin" @ Only for Raw Video
|
||||||
md_pcm_audio times 50 db "audio.wav" @ AVI dumping always dumps audio seperatly
|
md_pcm_audio times 50 db "audio.wav" @ AVI dumping always dumps audio seperatly
|
||||||
|
md_compressed_audio times 50 db "audio.mp3" @ For when selecting compressed
|
||||||
|
|
||||||
md_ntsc times 20 db "59649/995"
|
md_ntsc times 20 db "59649/995"
|
||||||
md_pal times 5 db "50/1"
|
md_pal times 5 db "50/1"
|
||||||
@@ -14,8 +15,8 @@ md_x264 times 100 db "-ovc x264 -x264encopts qp_constant=0:frameref=15"
|
|||||||
md_ffv1 times 100 db "-ovc lavc -lavcopts vcodec=ffv1:vstrict=-2:aspect=4/3"
|
md_ffv1 times 100 db "-ovc lavc -lavcopts vcodec=ffv1:vstrict=-2:aspect=4/3"
|
||||||
md_xvid times 100 db "-ovc xvid -xvidencopts fixed_quant=2"
|
md_xvid times 100 db "-ovc xvid -xvidencopts fixed_quant=2"
|
||||||
|
|
||||||
@Valid variables to use in the next two lines are:
|
@Valid variables to use in the next four lines are:
|
||||||
@$md_file, $md_prog, $md_raw, $md_other, $md_no_sound, $md_sound, $md_pcm_audio
|
@$md_file, $md_prog, $md_raw, $md_other, $md_no_sound, $md_sound, $md_pcm_audio, $md_compressed_audio
|
||||||
@and $md_video_rate, $md_vcodec
|
@and $md_video_rate, $md_vcodec
|
||||||
@These variables are defined above.
|
@These variables are defined above.
|
||||||
@$md_video_rate is $md_ntsc or $md_pal depending on the game as needed
|
@$md_video_rate is $md_ntsc or $md_pal depending on the game as needed
|
||||||
@@ -23,3 +24,5 @@ md_xvid times 100 db "-ovc xvid -xvidencopts fixed_quant=2"
|
|||||||
|
|
||||||
md_command times 150 db "$md_prog $md_other $md_no_sound $md_raw:fps=$md_video_rate $md_vcodec -o $md_file -"
|
md_command times 150 db "$md_prog $md_other $md_no_sound $md_raw:fps=$md_video_rate $md_vcodec -o $md_file -"
|
||||||
md_merge times 150 db "$md_prog $md_other $md_sound -audiofile $md_pcm_audio -force-avi-aspect 4:3 -ovc copy -o merged.avi $md_file"
|
md_merge times 150 db "$md_prog $md_other $md_sound -audiofile $md_pcm_audio -force-avi-aspect 4:3 -ovc copy -o merged.avi $md_file"
|
||||||
|
md_audio_compress times 150 db "lame -m j --preset 64 -q 0 - $md_compressed_audio"
|
||||||
|
md_merge_compressed times 150 db "$md_prog $md_other -oac copy -audiofile $md_compressed_audio -force-avi-aspect 4:3 -ovc copy -o merged.avi $md_file"
|
||||||
|
|||||||
@@ -1881,6 +1881,7 @@ unsigned char AudioLogging;
|
|||||||
extern unsigned char MovieVideoMode;
|
extern unsigned char MovieVideoMode;
|
||||||
extern unsigned char MovieAudio;
|
extern unsigned char MovieAudio;
|
||||||
extern unsigned char MovieVideoAudio;
|
extern unsigned char MovieVideoAudio;
|
||||||
|
extern unsigned char MovieAudioCompress;
|
||||||
|
|
||||||
extern char ZStartPath[PATH_MAX];
|
extern char ZStartPath[PATH_MAX];
|
||||||
|
|
||||||
@@ -1895,8 +1896,7 @@ static char *pick_var(char **str)
|
|||||||
PICK_HELP(md_sound);
|
PICK_HELP(md_sound);
|
||||||
PICK_HELP(md_no_sound);
|
PICK_HELP(md_no_sound);
|
||||||
PICK_HELP(md_pcm_audio);
|
PICK_HELP(md_pcm_audio);
|
||||||
|
PICK_HELP(md_compressed_audio);
|
||||||
|
|
||||||
|
|
||||||
if (!strncmp(*str, "$md_video_rate", strlen("$md_video_rate")))
|
if (!strncmp(*str, "$md_video_rate", strlen("$md_video_rate")))
|
||||||
{
|
{
|
||||||
@@ -1995,7 +1995,14 @@ static void raw_video_close()
|
|||||||
//The 4 bytes needed to hold the data size
|
//The 4 bytes needed to hold the data size
|
||||||
fwrite4(file_size - (raw_vid.aud_dsize_pos+4), raw_vid.ap);
|
fwrite4(file_size - (raw_vid.aud_dsize_pos+4), raw_vid.ap);
|
||||||
}
|
}
|
||||||
fclose(raw_vid.ap);
|
if (MovieAudioCompress)
|
||||||
|
{
|
||||||
|
pclose(raw_vid.ap);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fclose(raw_vid.ap);
|
||||||
|
}
|
||||||
raw_vid.ap = 0;
|
raw_vid.ap = 0;
|
||||||
AudioLogging = 0;
|
AudioLogging = 0;
|
||||||
}
|
}
|
||||||
@@ -2003,10 +2010,19 @@ static void raw_video_close()
|
|||||||
if (audio_and_video && MovieVideoAudio)
|
if (audio_and_video && MovieVideoAudio)
|
||||||
{
|
{
|
||||||
chdir(ZStartPath);
|
chdir(ZStartPath);
|
||||||
if (mencoderExists) system(encode_command(md_merge));
|
if (MovieAudioCompress)
|
||||||
|
{
|
||||||
|
if (mencoderExists) { system(encode_command(md_merge_compressed)); }
|
||||||
|
remove(md_compressed_audio);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (mencoderExists) { system(encode_command(md_merge)); }
|
||||||
|
remove(md_pcm_audio);
|
||||||
|
}
|
||||||
remove(md_file);
|
remove(md_file);
|
||||||
remove(md_pcm_audio);
|
|
||||||
}
|
}
|
||||||
|
signal(SIGPIPE, SIG_IGN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool raw_video_open()
|
static bool raw_video_open()
|
||||||
@@ -2041,7 +2057,16 @@ static bool raw_video_open()
|
|||||||
|
|
||||||
if ((!MovieVideoMode || raw_vid.vp) && MovieAudio)
|
if ((!MovieVideoMode || raw_vid.vp) && MovieAudio)
|
||||||
{
|
{
|
||||||
if ((raw_vid.ap = fopen(md_pcm_audio, "wb")))
|
if (MovieAudioCompress)
|
||||||
|
{
|
||||||
|
signal(SIGPIPE, broken_pipe);
|
||||||
|
raw_vid.ap = popen(encode_command(md_audio_compress), WRITE_BINARY);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
raw_vid.ap = fopen(md_pcm_audio, "wb");
|
||||||
|
}
|
||||||
|
if (raw_vid.ap)
|
||||||
{
|
{
|
||||||
fputs("RIFF", raw_vid.ap); //header
|
fputs("RIFF", raw_vid.ap); //header
|
||||||
fwrite4(~0, raw_vid.ap); //file size - unknown till file close
|
fwrite4(~0, raw_vid.ap); //file size - unknown till file close
|
||||||
|
|||||||
Reference in New Issue
Block a user