[MPlayer-cvslog] r21403 - in trunk/libmpdemux: aviheader.c demux_avi.c
reimar
subversion at mplayerhq.hu
Thu Nov 30 18:48:00 CET 2006
Author: reimar
Date: Thu Nov 30 18:48:00 2006
New Revision: 21403
Modified:
trunk/libmpdemux/aviheader.c
trunk/libmpdemux/demux_avi.c
Log:
Move initialization of sh_audio/sh_video members to aviheader
where possible so that all a_streams[]/v_streams[] are initialized
and switching becomes simpler.
Modified: trunk/libmpdemux/aviheader.c
==============================================================================
--- trunk/libmpdemux/aviheader.c (original)
+++ trunk/libmpdemux/aviheader.c Thu Nov 30 18:48:00 2006
@@ -195,10 +195,12 @@
if(h.fccType==streamtypeVIDEO){
sh_video=new_sh_video(demuxer,stream_id);
memcpy(&sh_video->video,&h,sizeof(h));
+ sh_video->stream_delay = (float)sh_video->video.dwStart * sh_video->video.dwScale/sh_video->video.dwRate;
} else
if(h.fccType==streamtypeAUDIO){
sh_audio=new_sh_audio(demuxer,stream_id);
memcpy(&sh_audio->audio,&h,sizeof(h));
+ sh_audio->stream_delay = (float)sh_audio->audio.dwStart * sh_audio->audio.dwScale/sh_audio->audio.dwRate;
}
last_fccType=h.fccType;
if( mp_msg_test(MSGT_HEADER,MSGL_V) ) print_strh(&h,MSGL_V);
@@ -264,8 +266,8 @@
sh_video->bih->biSize=chunksize;
if( mp_msg_test(MSGT_HEADER,MSGL_V) ) print_video_header(sh_video->bih,MSGL_V);
chunksize=0;
-// sh_video->fps=(float)sh_video->video.dwRate/(float)sh_video->video.dwScale;
-// sh_video->frametime=(float)sh_video->video.dwScale/(float)sh_video->video.dwRate;
+ sh_video->fps=(float)sh_video->video.dwRate/(float)sh_video->video.dwScale;
+ sh_video->frametime=(float)sh_video->video.dwScale/(float)sh_video->video.dwRate;
// if(demuxer->video->id==-1) demuxer->video->id=stream_id;
// IdxFix:
idxfix_videostream=stream_id;
@@ -316,6 +318,8 @@
wf_size < sizeof(WAVEFORMATEX)+sh_audio->wf->cbSize) {
sh_audio->wf=realloc(sh_audio->wf, sizeof(WAVEFORMATEX)+sh_audio->wf->cbSize);
}
+ sh_audio->format=sh_audio->wf->wFormatTag;
+ sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec;
chunksize=0;
if( mp_msg_test(MSGT_HEADER,MSGL_V) ) print_wave_header(sh_audio->wf,MSGL_V);
++priv->audio_streams;
Modified: trunk/libmpdemux/demux_avi.c
==============================================================================
--- trunk/libmpdemux/demux_avi.c (original)
+++ trunk/libmpdemux/demux_avi.c Thu Nov 30 18:48:00 2006
@@ -499,12 +499,8 @@
d_audio->sh=sh_audio=NULL;
} else {
sh_audio=d_audio->sh;sh_audio->ds=d_audio;
- sh_audio->format=sh_audio->wf->wFormatTag;
}
}
- // calc. FPS:
- sh_video->fps=(float)sh_video->video.dwRate/(float)sh_video->video.dwScale;
- sh_video->frametime=(float)sh_video->video.dwScale/(float)sh_video->video.dwRate;
// calculating audio/video bitrate:
if(priv->idx_size>0){
@@ -546,7 +542,6 @@
if(sh_audio){
if(sh_audio->wf->nAvgBytesPerSec && sh_audio->audio.dwSampleSize!=1){
asize=(float)sh_audio->wf->nAvgBytesPerSec*sh_audio->audio.dwLength*sh_audio->audio.dwScale/sh_audio->audio.dwRate;
- sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec;
} else {
asize=sh_audio->audio.dwLength;
sh_audio->i_bps=(float)asize/(sh_video->frametime*priv->numberofframes);
@@ -557,11 +552,6 @@
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;
}
More information about the MPlayer-cvslog
mailing list