[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[489] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2012-11-30 07:29:11
|
Revision: 489 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=489&view=rev Author: nickols_k Date: 2012-11-30 07:29:04 +0000 (Fri, 30 Nov 2012) Log Message: ----------- first stage of full redesign of project: move audio->decoder_t from sh_audio Modified Paths: -------------- mplayerxp/libmpdemux/demux_aiff.cpp mplayerxp/libmpdemux/demux_asf.cpp mplayerxp/libmpdemux/demux_audio.cpp mplayerxp/libmpdemux/demux_avi.cpp mplayerxp/libmpdemux/demux_mpg.cpp mplayerxp/libmpdemux/demux_mpxp64.cpp mplayerxp/libmpdemux/demux_ogg.cpp mplayerxp/libmpdemux/demux_rawaudio.cpp mplayerxp/libmpdemux/demux_real.cpp mplayerxp/libmpdemux/demux_ts.cpp mplayerxp/libmpdemux/demux_ty.cpp mplayerxp/libmpdemux/demux_vqf.cpp mplayerxp/libmpdemux/stheader.h mplayerxp/mplayerxp.cpp mplayerxp/mplayerxp.h mplayerxp/xmpcore/xmp_adecoder.cpp mplayerxp/xmpcore/xmp_aplayer.cpp Modified: mplayerxp/libmpdemux/demux_aiff.cpp =================================================================== --- mplayerxp/libmpdemux/demux_aiff.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_aiff.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -213,7 +213,6 @@ pos=base+(seeka->flags&DEMUX_SEEK_PERCENTS?(demuxer->movi_end - demuxer->movi_start):sh_audio->i_bps)*seeka->secs; pos -= (pos % (sh_audio->nch * afmt2bps(sh_audio->afmt))); stream_seek(s,pos); - mpca_resync_stream(sh_audio->decoder); } static void aiff_close(demuxer_t* demuxer) Modified: mplayerxp/libmpdemux/demux_asf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_asf.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_asf.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -710,7 +710,6 @@ if(sh_audio && !d_audio->eof){ ds_free_packs_until_pts(d_audio,d_video->pts); ds_fill_buffer(d_audio); - mpca_resync_stream(sh_audio->decoder); } } Modified: mplayerxp/libmpdemux/demux_audio.cpp =================================================================== --- mplayerxp/libmpdemux/demux_audio.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_audio.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -1698,7 +1698,6 @@ if(len > 0) high_res_mp3_seek(demuxer,len); sh_audio->timer = priv->last_pts - (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; - mpca_resync_stream(sh_audio->decoder); return; } @@ -1735,7 +1734,6 @@ if(len > 0) high_res_ac3_seek(demuxer,len); sh_audio->timer = priv->last_pts - (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; - mpca_resync_stream(sh_audio->decoder); return; } case RAW_DCA: { @@ -1748,7 +1746,6 @@ if(len > 0) high_res_ddca_seek(demuxer,len); sh_audio->timer = priv->last_pts - (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; - mpca_resync_stream(sh_audio->decoder); return; } case RAW_VOC: @@ -1760,11 +1757,7 @@ priv->last_pts -= sh_audio->wf->nAvgBytesPerSec/(float)sh_audio->i_bps; break; } - stream_seek(s,pos); - - mpca_resync_stream(sh_audio->decoder); - } static void audio_close(demuxer_t* demuxer) { Modified: mplayerxp/libmpdemux/demux_avi.cpp =================================================================== --- mplayerxp/libmpdemux/demux_avi.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_avi.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -1490,10 +1490,8 @@ demux_read_data(d_audio,NULL,skip_audio_bytes); //d_audio->pts=0; // PTS is outdated because of the raw data skipping } - mpca_resync_stream(sh_audio->decoder); -// sh_audio->timer=-skip_audio_secs; } - d_video->pts=priv->avi_video_pts; // OSD + d_video->pts=priv->avi_video_pts; // OSD } #define formtypeON2 mmioFOURCC('O', 'N', '2', 'f') @@ -1521,6 +1519,9 @@ static MPXP_Rc avi_control(const demuxer_t *demuxer,int cmd,any_t*args) { + UNUSED(demuxer); + UNUSED(cmd); + UNUSED(args); return MPXP_Unknown; } Modified: mplayerxp/libmpdemux/demux_mpg.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mpg.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_mpg.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -578,7 +578,7 @@ ds_fill_buffer(d_video); if(sh_audio){ ds_fill_buffer(d_audio); - mpca_resync_stream(sh_audio->decoder); +// mpca_resync_stream(sh_audio->decoder); } while(1){ @@ -587,7 +587,7 @@ float a_pts=d_audio->pts; a_pts+=(ds_tell_pts(d_audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; if(d_video->pts>a_pts){ - mpca_skip_frame(sh_audio->decoder); // sync audio +// mpca_skip_frame(sh_audio->decoder); // sync audio continue; } } Modified: mplayerxp/libmpdemux/demux_mpxp64.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mpxp64.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_mpxp64.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -824,16 +824,12 @@ if(newpos<(uint64_t)demuxer->movi_start) newpos=demuxer->movi_start; if(newpos>(uint64_t)demuxer->movi_end) goto cant_seek; stream_seek(demuxer->stream,newpos); - if(!has_idx) - { - if(mpxpav64_sync(demuxer)) - { + if(!has_idx) { + if(mpxpav64_sync(demuxer)) { if(mp_conf.verbose) MSG_V("MPXPAV64_SEEK: newpos after sync %016llX\n",stream_tell(demuxer->stream)); mpxpav64_reset_prevs(demuxer); - mpca_resync_stream(((sh_audio_t*)demuxer->audio->sh)->decoder); } - else - { + else { cant_seek: MSG_WARN("MPXPAV64_SEEK: can't find CLUSTER0\n"); stream_seek(demuxer->stream,cpos); Modified: mplayerxp/libmpdemux/demux_ogg.cpp =================================================================== --- mplayerxp/libmpdemux/demux_ogg.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_ogg.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -1440,8 +1440,6 @@ vo_osd_changed(OSDTYPE_SUBTITLE); clear_sub = -1; demux_ogg_add_packet(ds,os,ds->id,&op); - if(sh_audio) - mpca_resync_stream(sh_audio->decoder); return; } } Modified: mplayerxp/libmpdemux/demux_rawaudio.cpp =================================================================== --- mplayerxp/libmpdemux/demux_rawaudio.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_rawaudio.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -104,7 +104,6 @@ pos=base+(seeka->flags&DEMUX_SEEK_PERCENTS?demuxer->movi_end-demuxer->movi_start:sh_audio->i_bps)*seeka->secs; pos -= (pos % (sh_audio->nch * afmt2bps(sh_audio->afmt))); stream_seek(s,pos); - mpca_resync_stream(sh_audio->decoder); } static void rawaudio_close(demuxer_t* demuxer) { UNUSED(demuxer); } Modified: mplayerxp/libmpdemux/demux_real.cpp =================================================================== --- mplayerxp/libmpdemux/demux_real.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_real.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -1589,8 +1589,6 @@ stream_seek(demuxer->stream, next_offset); real_demux(demuxer,NULL); - if (sh_audio) - mpca_resync_stream(sh_audio->decoder); return; } Modified: mplayerxp/libmpdemux/demux_ts.cpp =================================================================== --- mplayerxp/libmpdemux/demux_ts.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_ts.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -3116,20 +3116,16 @@ ds_fill_buffer(d_audio); } - while(sh_video != NULL) - { - if(sh_audio && !d_audio->eof && d_video->pts && d_audio->pts) - { + while(sh_video != NULL) { + if(sh_audio && !d_audio->eof && d_video->pts && d_audio->pts) { float a_pts=d_audio->pts; a_pts+=(ds_tell_pts(d_audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; - if(d_video->pts > a_pts) - { - mpca_skip_frame(sh_audio->decoder); // sync audio + if(d_video->pts > a_pts) { +// mpca_skip_frame( sh_audio->decoder); // sync audio continue; } } - i = sync_video_packet(d_video); if((sh_video->fourcc == VIDEO_MPEG1) || (sh_video->fourcc == VIDEO_MPEG2)) { Modified: mplayerxp/libmpdemux/demux_ty.cpp =================================================================== --- mplayerxp/libmpdemux/demux_ty.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_ty.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -805,7 +805,7 @@ (float)sh_audio->i_bps; if( d_video->pts > a_pts ) { - mpca_skip_frame( sh_audio->decoder); // sync audio +// mpca_skip_frame( sh_audio->decoder); // sync audio continue; } } Modified: mplayerxp/libmpdemux/demux_vqf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_vqf.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/demux_vqf.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -218,7 +218,6 @@ pos=base+(seeka->flags&DEMUX_SEEK_PERCENTS?demuxer->movi_end-demuxer->movi_start:sh_audio->i_bps)*seeka->secs; pos -= (pos % (sh_audio->nch * afmt2bps(sh_audio->afmt))); stream_seek(s,pos); - mpca_resync_stream(sh_audio->decoder); } static void vqf_close(demuxer_t* demuxer) { UNUSED(demuxer); } Modified: mplayerxp/libmpdemux/stheader.h =================================================================== --- mplayerxp/libmpdemux/stheader.h 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/libmpdemux/stheader.h 2012-11-30 07:29:04 UTC (rev 489) @@ -23,8 +23,6 @@ uint32_t wtag; // analogue of fourcc for sound unsigned i_bps; // == bitrate (compressed bytes/sec) - any_t* decoder; - // output format: float timer; // value of old a_frame unsigned rate; // sample rate Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/mplayerxp.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -198,7 +198,9 @@ } MP_Config mp_conf; -MPXPContext::MPXPContext() { +MPXPContext::MPXPContext() + :audio(*new(zeromem) audio_processing_t) +{ seek_time=-1; bench=new(zeromem) time_usage_t; use_pts_fix2=-1; @@ -345,7 +347,7 @@ if(mask&INITED_ACODEC){ inited_flags&=~INITED_ACODEC; MP_UNIT("uninit_acodec"); - mpca_uninit(sh_audio->decoder); + mpca_uninit(MPXPCtx->audio.decoder); sh_audio=NULL; } @@ -706,7 +708,7 @@ if(sh_audio){ MP_UNIT("seek_audio_reset"); - mpca_resync_stream(sh_audio->decoder); + mpca_resync_stream(MPXPCtx->audio.decoder); ao_reset(ao_data); // stop audio, throwing away buffered data } @@ -753,9 +755,7 @@ void mpxp_resync_audio_stream(void) { - MPXPSystem*MPXPSys=MPXPCtx->MPXPSys; - sh_audio_t* sh_audio=reinterpret_cast<sh_audio_t*>(MPXPSys->demuxer()->audio->sh); - mpca_resync_stream(sh_audio->decoder); + mpca_resync_stream(MPXPCtx->audio.decoder); } static void __FASTCALL__ mpxp_stream_event_handler(stream_t *s,const stream_packet_t *sp) @@ -1107,7 +1107,7 @@ demux_stream_t *d_audio=MPXPSys->demuxer()->audio; sh_audio->codec=NULL; mpca=mpca_init(sh_audio); // try auto-probe first - if(mpca) { sh_audio->decoder=mpca; found=1; } + if(mpca) { MPXPCtx->audio.decoder=mpca; found=1; } #ifdef ENABLE_WIN32LOADER if(!found) { // Go through the codec.conf and find the best codec... @@ -1648,7 +1648,7 @@ static void mpxp_config_malloc(int argc,char *argv[]) { - int i,level; + int i; mp_conf.malloc_debug=0; mp_malloc_e flg=MPA_FLG_RANDOMIZER; for(i=0;i<argc;i++) { @@ -1890,10 +1890,11 @@ goto dump_file; } + /* is it non duplicate block fro find_acodec() ??? */ if(sh_audio){ MSG_V("Initializing audio codec...\n"); - if(!sh_audio->decoder) { - if(mpca_init(sh_audio)==NULL){ + if(!MPXPCtx->audio.decoder) { + if((MPXPCtx->audio.decoder=mpca_init(sh_audio))==NULL){ MSG_ERR(MSGTR_CouldntInitAudioCodec); d_audio->sh=NULL; sh_audio=reinterpret_cast<sh_audio_t*>(d_audio->sh); Modified: mplayerxp/mplayerxp.h =================================================================== --- mplayerxp/mplayerxp.h 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/mplayerxp.h 2012-11-30 07:29:04 UTC (rev 489) @@ -121,6 +121,10 @@ double total_start; }time_usage_t; + struct audio_processing_t { + any_t* decoder; + }; + struct MPXPSystem; /* non-configurable through command line stuff */ struct MPXPContext { @@ -138,6 +142,7 @@ time_usage_t* bench; struct MPXPSystem* MPXPSys; any_t* msg_priv; + audio_processing_t& audio; }; extern MPXPContext* MPXPCtx; Modified: mplayerxp/xmpcore/xmp_adecoder.cpp =================================================================== --- mplayerxp/xmpcore/xmp_adecoder.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/xmpcore/xmp_adecoder.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -276,7 +276,7 @@ for( l = 0, l2 = len, ret = 0; l < len && l2 >= audio_buffer.sh_audio->audio_out_minsize; ) { float pts; - ret = mpca_decode( audio_buffer.sh_audio->decoder, &audio_buffer.buffer[audio_buffer.head], audio_buffer.min_len, l2,blen,&pts); + ret = mpca_decode(MPXPCtx->audio.decoder, &audio_buffer.buffer[audio_buffer.head], audio_buffer.min_len, l2,blen,&pts); if( ret <= 0 ) break; Modified: mplayerxp/xmpcore/xmp_aplayer.cpp =================================================================== --- mplayerxp/xmpcore/xmp_aplayer.cpp 2012-11-30 06:39:23 UTC (rev 488) +++ mplayerxp/xmpcore/xmp_aplayer.cpp 2012-11-30 07:29:04 UTC (rev 489) @@ -65,7 +65,7 @@ ret=read_audio_buffer(sh_audio,(unsigned char *)&sh_audio->a_buffer[sh_audio->a_buffer_len], playsize-sh_audio->a_buffer_len,sh_audio->a_buffer_size-sh_audio->a_buffer_len,&pts); } else { - ret=mpca_decode(sh_audio->decoder,(unsigned char *)&sh_audio->a_buffer[sh_audio->a_buffer_len], + ret=mpca_decode(MPXPCtx->audio.decoder,(unsigned char *)&sh_audio->a_buffer[sh_audio->a_buffer_len], playsize-sh_audio->a_buffer_len,sh_audio->a_buffer_size-sh_audio->a_buffer_len,sh_audio->a_buffer_size-sh_audio->a_buffer_len,&pts); } if(ret>0) sh_audio->a_buffer_len+=ret; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |