summaryrefslogtreecommitdiffstats
path: root/mencoder.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-01 08:39:33 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-01 08:39:33 +0000
commitf7f058b6e1a190f1a83198a23b9d5bd3ae2f7ed7 (patch)
tree2fb378a8b60e20be3a0fc6bb379a1b0cf9b34111 /mencoder.c
parent6cb2e9aaaa26e0a35d898b9025e7d9391c7112b6 (diff)
downloadmpv-f7f058b6e1a190f1a83198a23b9d5bd3ae2f7ed7.tar.bz2
mpv-f7f058b6e1a190f1a83198a23b9d5bd3ae2f7ed7.tar.xz
audio preload/density/delay configurable
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6862 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mencoder.c')
-rw-r--r--mencoder.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/mencoder.c b/mencoder.c
index f6b6af3537..e5fc363dad 100644
--- a/mencoder.c
+++ b/mencoder.c
@@ -140,6 +140,10 @@ static float default_max_pts_correction=-1;//0.01f;
static float max_pts_correction=0;//default_max_pts_correction;
static float c_total=0;
+float audio_preload=0.5;
+float audio_delay=0.0;
+int audio_density=2;
+
float force_fps=0;
float force_ofps=0; // set to 24 for inverse telecine
static int skip_limit=-1;
@@ -331,8 +335,6 @@ off_t muxer_f_size=0;
lame_global_flags *lame;
#endif
-float audio_preload=0.5;
-
double v_pts_corr=0;
double v_timer_corr=0;
@@ -724,6 +726,7 @@ case ACODEC_COPY:
mux_a->h.dwSampleSize=sh_audio->audio.dwSampleSize;
mux_a->h.dwScale=sh_audio->audio.dwScale;
mux_a->h.dwRate=sh_audio->audio.dwRate;
+// mux_a->h.dwStart=sh_audio->audio.dwStart;
} else {
mux_a->h.dwSampleSize=mux_a->wf->nBlockAlign;
mux_a->h.dwScale=mux_a->h.dwSampleSize;
@@ -769,10 +772,16 @@ case ACODEC_VBRMP3:
((MPEGLAYER3WAVEFORMAT*)(mux_a->wf))->nCodecDelay=0;
break;
}
-}
if (verbose>1) print_wave_header(mux_a->wf);
+if(audio_delay!=0.0){
+ mux_a->h.dwStart=audio_delay*mux_a->h.dwRate/mux_a->h.dwScale;
+ printf("Setting AUDIO DELAY to %5.3f\n",mux_a->h.dwStart*mux_a->h.dwScale/(float)mux_a->h.dwRate);
+}
+
+} // if(sh_audio)
+
printf("Writing AVI header...\n");
aviwrite_write_header(muxer,muxer_f);
@@ -869,13 +878,13 @@ if(sh_audio){
// CBR - copy 0.5 sec of audio
switch(mux_a->codec){
case ACODEC_COPY: // copy
- len=mux_a->wf->nAvgBytesPerSec/2;
+ len=mux_a->wf->nAvgBytesPerSec/audio_density;
len/=mux_a->h.dwSampleSize;if(len<1) len=1;
len*=mux_a->h.dwSampleSize;
len=demux_read_data(sh_audio->ds,mux_a->buffer,len);
break;
case ACODEC_PCM:
- len=mux_a->h.dwSampleSize*(mux_a->h.dwRate/2);
+ len=mux_a->h.dwSampleSize*(mux_a->h.dwRate/audio_density);
len=dec_audio(sh_audio,mux_a->buffer,len);
break;
}