mirror of https://github.com/mpv-player/mpv
dwStart support for mplayer.
* demux_avi sets stream_delay according to dwStart * mplayer adjusts audio_delay according to stream_delay 3 related patches are pending, and I will apply them over the next few days if all goes well. As I mentioned on -dev-eng, the funny indentation is in preparation for one of those pending patches. See: Date: Fri, 17 Feb 2006 00:53:28 -0800 To: mplayer-dev-eng@mplayerhq.hu Subject: [PATCH] bframes, dwStart: individual patches git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17644 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
366151d741
commit
b4e5108496
|
@ -612,6 +612,12 @@ static demuxer_t* demux_open_avi(demuxer_t* demuxer){
|
|||
mp_msg(MSGT_DEMUX,MSGL_V,"AVI video size=%d (%u) audio size=%d\n",vsize,priv->numberofframes,asize);
|
||||
sh_video->i_bps=(float)vsize/(sh_video->frametime*priv->numberofframes);
|
||||
}
|
||||
|
||||
if (sh_video)
|
||||
sh_video->stream_delay = (float)sh_video->video.dwStart * sh_video->video.dwScale/sh_video->video.dwRate;
|
||||
if (sh_audio)
|
||||
sh_audio->stream_delay = (float)sh_audio->audio.dwStart * sh_audio->audio.dwScale/sh_audio->audio.dwRate;
|
||||
|
||||
return demuxer;
|
||||
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ typedef struct {
|
|||
unsigned int format;
|
||||
int inited;
|
||||
float delay; // relative (to sh_video->timer) time in audio stream
|
||||
float stream_delay; // number of seconds stream should be delayed (according to dwStart or similar)
|
||||
// output format:
|
||||
int sample_format;
|
||||
int samplerate;
|
||||
|
@ -54,6 +55,7 @@ typedef struct {
|
|||
unsigned int format;
|
||||
int inited;
|
||||
float timer; // absolute time in video stream, since last start/seek
|
||||
float stream_delay; // number of seconds stream should be delayed (according to dwStart or similar)
|
||||
// frame counters:
|
||||
float num_frames; // number of frames played
|
||||
int num_frames_decoded; // number of frames decoded
|
||||
|
|
10
mplayer.c
10
mplayer.c
|
@ -2522,8 +2522,14 @@ if(sh_audio){
|
|||
|
||||
current_module="av_init";
|
||||
|
||||
if(sh_video) sh_video->timer=0;
|
||||
if(sh_audio) sh_audio->delay=-audio_delay;
|
||||
if(sh_video){
|
||||
sh_video->timer=0;
|
||||
audio_delay += sh_video->stream_delay;
|
||||
}
|
||||
if(sh_audio){
|
||||
audio_delay -= sh_audio->stream_delay;
|
||||
sh_audio->delay=-audio_delay;
|
||||
}
|
||||
|
||||
if(!sh_audio){
|
||||
mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_NoSound);
|
||||
|
|
Loading…
Reference in New Issue