[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[473] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2012-11-28 12:59:13
|
Revision: 473 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=473&view=rev Author: nickols_k Date: 2012-11-28 12:58:58 +0000 (Wed, 28 Nov 2012) Log Message: ----------- [demuxer] suppress warnings like: deleting 'any_t*' is undefined Modified Paths: -------------- mplayerxp/dump.cpp mplayerxp/libmpdemux/Makefile mplayerxp/libmpdemux/demux_aiff.cpp mplayerxp/libmpdemux/demux_asf.cpp mplayerxp/libmpdemux/demux_audio.cpp mplayerxp/libmpdemux/demux_avi.cpp mplayerxp/libmpdemux/demux_bmp.cpp mplayerxp/libmpdemux/demux_demuxers.cpp mplayerxp/libmpdemux/demux_dv.cpp mplayerxp/libmpdemux/demux_film.cpp mplayerxp/libmpdemux/demux_fli.cpp mplayerxp/libmpdemux/demux_lavf.cpp mplayerxp/libmpdemux/demux_mkv.cpp mplayerxp/libmpdemux/demux_mov.cpp mplayerxp/libmpdemux/demux_mpg.cpp mplayerxp/libmpdemux/demux_mpxp64.cpp mplayerxp/libmpdemux/demux_nsv.cpp mplayerxp/libmpdemux/demux_nuv.cpp mplayerxp/libmpdemux/demux_ogg.cpp mplayerxp/libmpdemux/demux_pva.cpp mplayerxp/libmpdemux/demux_rawvideo.cpp mplayerxp/libmpdemux/demux_real.cpp mplayerxp/libmpdemux/demux_roq.cpp mplayerxp/libmpdemux/demux_ts.cpp mplayerxp/libmpdemux/demux_ty.cpp mplayerxp/libmpdemux/demux_viv.cpp mplayerxp/libmpdemux/demux_y4m.cpp mplayerxp/libmpdemux/demuxer.cpp mplayerxp/libmpdemux/demuxer.h Added Paths: ----------- mplayerxp/libmpdemux/demux_realaud.cpp Removed Paths: ------------- mplayerxp/libmpdemux/demux_ra.cpp Modified: mplayerxp/dump.cpp =================================================================== --- mplayerxp/dump.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/dump.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -74,20 +74,24 @@ #define MUX_HAVE_AUDIO 0x01 #define MUX_HAVE_VIDEO 0x02 #define MUX_HAVE_SUBS 0x04 -typedef struct priv_s { - int my_use_pts; - FILE* mux_file; - muxer_t* muxer; - muxer_stream_t *m_audio,*m_video,*m_subs; - unsigned decoded_frameno; - unsigned a_frameno; - int mux_type; - uint64_t vsize,asize,ssize; - float timer_corr; /* use common time-base */ - float vtimer; - any_t* libinput; -}priv_t; +struct dump_priv_t : public Opaque { + public: + dump_priv_t() {} + virtual ~dump_priv_t() {} + int my_use_pts; + FILE* mux_file; + muxer_t* muxer; + muxer_stream_t *m_audio,*m_video,*m_subs; + unsigned decoded_frameno; + unsigned a_frameno; + int mux_type; + uint64_t vsize,asize,ssize; + float timer_corr; /* use common time-base */ + float vtimer; + any_t* libinput; +}; + void __FASTCALL__ dump_stream_event_handler(struct stream_s *s,const stream_packet_t*sp) { } @@ -96,7 +100,7 @@ returns: 0 - nothing interested -1 - quit */ -static int check_cmd(priv_t* priv) +static int check_cmd(dump_priv_t* priv) { mp_cmd_t* cmd; int retval; @@ -122,8 +126,8 @@ char stream_dump_name[1024]; /* TODO copy it from demuxer */ if(demuxer->priv) return; - demuxer->priv=mp_mallocz(sizeof(priv_t)); - priv_t*priv=reinterpret_cast<priv_t*>(demuxer->priv); + dump_priv_t*priv=new(zeromem) dump_priv_t; + demuxer->priv=priv; priv->libinput=libinput; /* describe other useless dumps */ priv->mux_type=MUX_HAVE_AUDIO|MUX_HAVE_VIDEO|MUX_HAVE_SUBS; @@ -221,7 +225,7 @@ void dump_mux_close(demuxer_t *demuxer) { - priv_t* priv=reinterpret_cast<priv_t*>(demuxer->priv); + dump_priv_t* priv=static_cast<dump_priv_t*>(demuxer->priv); demux_stream_t *d_audio=demuxer->audio; demux_stream_t *d_video=demuxer->video; sh_audio_t* sha=reinterpret_cast<sh_audio_t*>(d_audio->sh); @@ -281,7 +285,7 @@ void dump_mux(demuxer_t *demuxer,int use_pts,const char *seek_to_sec,unsigned play_n_frames) { - priv_t* priv=reinterpret_cast<priv_t*>(demuxer->priv); + dump_priv_t* priv=static_cast<dump_priv_t*>(demuxer->priv); demux_stream_t *d_audio=demuxer->audio; demux_stream_t *d_video=demuxer->video; sh_audio_t* sha=reinterpret_cast<sh_audio_t*>(d_audio->sh); Modified: mplayerxp/libmpdemux/Makefile =================================================================== --- mplayerxp/libmpdemux/Makefile 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/Makefile 2012-11-28 12:58:58 UTC (rev 473) @@ -31,10 +31,10 @@ demux_null.cpp \ demux_nuv.cpp \ demux_pva.cpp \ - demux_ra.cpp \ demux_rawaudio.cpp \ demux_rawvideo.cpp \ demux_real.cpp \ + demux_realaud.cpp \ demux_roq.cpp \ demux_smjpeg.cpp \ demux_ts.cpp \ Modified: mplayerxp/libmpdemux/demux_aiff.cpp =================================================================== --- mplayerxp/libmpdemux/demux_aiff.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_aiff.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -30,11 +30,15 @@ } -typedef struct priv_s +struct priv_t : public Opaque { - int verc; -}priv_t; + public: + priv_t() {} + virtual ~priv_t() {} + int verc; +}; + static MPXP_Rc aiff_probe(demuxer_t* demuxer) { char buf[12]; Modified: mplayerxp/libmpdemux/demux_asf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_asf.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_asf.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -43,21 +43,25 @@ ASF_GUID_PREFIX_stream_group =0x7bf875ce }; -typedef struct asf_priv_s +struct asf_priv_t : public Opaque { - ASF_header_t asfh; - ASF_obj_header_t objh; - ASF_file_header_t fileh; - ASF_stream_header_t streamh; - ASF_content_description_t contenth; - int asf_scrambling_h; - int asf_scrambling_w; - int asf_scrambling_b; - int asf_packetsize; - double asf_packetrate; - int asf_movielength; -}asf_priv_t; + public: + asf_priv_t() {} + virtual ~asf_priv_t() {} + ASF_header_t asfh; + ASF_obj_header_t objh; + ASF_file_header_t fileh; + ASF_stream_header_t streamh; + ASF_content_description_t contenth; + int asf_scrambling_h; + int asf_scrambling_w; + int asf_scrambling_b; + int asf_packetsize; + double asf_packetrate; + int asf_movielength; +}; + // the variable string is modify in this function void pack_asf_string(char* string, int length) { int i,j; @@ -119,7 +123,7 @@ static MPXP_Rc asf_probe(demuxer_t *demuxer){ const unsigned char asfhdrguid[16]= {0x30,0x26,0xB2,0x75,0x8E,0x66,0xCF,0x11,0xA6,0xD9,0x00,0xAA,0x00,0x62,0xCE,0x6C}; const unsigned char asf2hdrguid[16]={0xD1,0x29,0xE2,0xD6,0xDA,0x35,0xD1,0x11,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE}; - asf_priv_t *apriv; + asf_priv_t* apriv; demuxer->priv=apriv=new(zeromem) asf_priv_t; apriv->asf_scrambling_h=1; apriv->asf_scrambling_w=1; @@ -157,7 +161,7 @@ uint16_t stream_count=0; int best_video = -1; int best_audio = -1; - asf_priv_t *apriv=reinterpret_cast<asf_priv_t*>(demuxer->priv); + asf_priv_t *apriv=static_cast<asf_priv_t*>(demuxer->priv); while(!stream_eof(demuxer->stream)){ int pos,endpos; @@ -415,7 +419,7 @@ static int demux_asf_read_packet(demuxer_t *demux,off_t dataoff,int len,int id,int seq,unsigned long time,unsigned short dur,int offs,int keyframe){ demux_stream_t *ds=NULL; - asf_priv_t *apriv=reinterpret_cast<asf_priv_t*>(demux->priv); + asf_priv_t *apriv=static_cast<asf_priv_t*>(demux->priv); MSG_DBG3("demux_asf.read_packet: id=%d seq=%d len=%d time=%u dur=%u offs=%i key=%i\n",id,seq,len,time,dur,offs,keyframe); @@ -495,7 +499,7 @@ // 1 = successfully read a packet static int asf_demux(demuxer_t *demux,demux_stream_t *ds){ stream_t *stream=demux->stream; -asf_priv_t *apriv=reinterpret_cast<asf_priv_t*>(demux->priv); +asf_priv_t *apriv=static_cast<asf_priv_t*>(demux->priv); int done=0; while(!done) { @@ -685,7 +689,7 @@ static void asf_seek(demuxer_t *demuxer,const seek_args_t* seeka){ demux_stream_t *d_audio=demuxer->audio; demux_stream_t *d_video=demuxer->video; - asf_priv_t *apriv=reinterpret_cast<asf_priv_t*>(demuxer->priv); + asf_priv_t *apriv=static_cast<asf_priv_t*>(demuxer->priv); sh_audio_t *sh_audio=reinterpret_cast<sh_audio_t*>(d_audio->sh); /*================= seek in ASF ==========================*/ Modified: mplayerxp/libmpdemux/demux_audio.cpp =================================================================== --- mplayerxp/libmpdemux/demux_audio.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_audio.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -35,21 +35,25 @@ #define HDR_SIZE 4 -typedef struct da_priv { - int frmt; - float last_pts,pts_per_packet,length; - uint32_t dword; - int pos; - /* Xing's VBR specific extensions */ - int is_xing; - unsigned nframes; - unsigned nbytes; - int scale; - unsigned srate; - int lsf; - unsigned char toc[100]; /* like AVI's indexes */ -} da_priv_t; +struct da_priv_t : public Opaque { + public: + da_priv_t() {} + virtual ~da_priv_t() {} + int frmt; + float last_pts,pts_per_packet,length; + uint32_t dword; + int pos; + /* Xing's VBR specific extensions */ + int is_xing; + unsigned nframes; + unsigned nbytes; + int scale; + unsigned srate; + int lsf; + unsigned char toc[100]; /* like AVI's indexes */ +}; + static int hr_mp3_seek = 0; #define DDCA_MONO 0 @@ -874,7 +878,7 @@ assert(demuxer->stream != NULL); #endif - priv = (da_priv_t*)mp_mallocz(sizeof(da_priv_t)); + priv = new(zeromem) da_priv_t; s = demuxer->stream; stream_reset(s); stream_seek(s,s->start_pos); @@ -1398,7 +1402,7 @@ #endif sh_audio = reinterpret_cast<sh_audio_t*>(demuxer->audio->sh); demux = demuxer; - priv = reinterpret_cast<da_priv_t*>(demux->priv); + priv = static_cast<da_priv_t*>(demux->priv); s = demux->stream; seof=stream_eof(s); @@ -1571,7 +1575,7 @@ static void high_res_mp3_seek(demuxer_t *demuxer,float _time) { uint8_t hdr[4]; int len,nf; - da_priv_t* priv = reinterpret_cast<da_priv_t*>(demuxer->priv); + da_priv_t* priv = static_cast<da_priv_t*>(demuxer->priv); sh_audio_t* sh = (sh_audio_t*)demuxer->audio->sh; nf = _time*sh->rate/1152; @@ -1593,7 +1597,7 @@ uint8_t hdr[8]; int len,nf; unsigned tmp; - da_priv_t* priv = reinterpret_cast<da_priv_t*>(demuxer->priv); + da_priv_t* priv = static_cast<da_priv_t*>(demuxer->priv); sh_audio_t* sh = (sh_audio_t*)demuxer->audio->sh; nf = _time*sh->rate/1152; @@ -1615,7 +1619,7 @@ uint8_t hdr[12]; int len,nf; unsigned tmp; - da_priv_t* priv = reinterpret_cast<da_priv_t*>(demuxer->priv); + da_priv_t* priv = static_cast<da_priv_t*>(demuxer->priv); sh_audio_t* sh = (sh_audio_t*)demuxer->audio->sh; nf = _time*sh->rate/1152; @@ -1642,7 +1646,7 @@ if(!(sh_audio = reinterpret_cast<sh_audio_t*>(demuxer->audio->sh))) return; s = demuxer->stream; - priv = reinterpret_cast<da_priv_t*>(demuxer->priv); + priv = static_cast<da_priv_t*>(demuxer->priv); if(priv->frmt==RAW_MUSEPACK) { s = demuxer->stream; @@ -1763,11 +1767,10 @@ } static void audio_close(demuxer_t* demuxer) { - da_priv_t* priv = reinterpret_cast<da_priv_t*>(demuxer->priv); + da_priv_t* priv = static_cast<da_priv_t*>(demuxer->priv); - if(!priv) - return; - delete priv; + if(!priv) return; + delete priv; } static MPXP_Rc audio_control(const demuxer_t *demuxer,int cmd,any_t*args) Modified: mplayerxp/libmpdemux/demux_avi.cpp =================================================================== --- mplayerxp/libmpdemux/demux_avi.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_avi.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -3,6 +3,8 @@ using namespace mpxp; /* AVI file parser for DEMUXER v2.9 by A'rpi/ESP-team */ +#include <algorithm> + #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -21,38 +23,45 @@ #include "demux_msg.h" typedef int (*alt_demuxer_t)(demuxer_t *demux,demux_stream_t *__ds); -typedef struct { - // index stuff: - AVIINDEXENTRY* idx; - int idx_size; - off_t idx_pos; - off_t idx_pos_a; - off_t idx_pos_v; - off_t idx_offset; // ennyit kell hozzaadni az index offset ertekekhez - // bps-based PTS stuff: - int video_pack_no; - int audio_block_size; - off_t audio_block_no; - // interleaved PTS stuff: - int skip_video_frames; - int audio_streams; - float avi_audio_pts; - float avi_video_pts; - float pts_correction; - unsigned int pts_corr_bytes; - unsigned char pts_corrected; - unsigned char pts_has_video; - unsigned int numberofframes; - avisuperindex_chunk *suidx; - unsigned int suidx_size; - int nini; - int is_odml; - alt_demuxer_t alt_demuxer; -} avi_priv_t; +struct avi_priv_t : public Opaque { + public: + avi_priv_t() {} + virtual ~avi_priv_t(); + // index stuff: + AVIINDEXENTRY* idx; + int idx_size; + off_t idx_pos; + off_t idx_pos_a; + off_t idx_pos_v; + off_t idx_offset; // ennyit kell hozzaadni az index offset ertekekhez + // bps-based PTS stuff: + int video_pack_no; + int audio_block_size; + off_t audio_block_no; + // interleaved PTS stuff: + int skip_video_frames; + int audio_streams; + float avi_audio_pts; + float avi_video_pts; + float pts_correction; + unsigned int pts_corr_bytes; + unsigned char pts_corrected; + unsigned char pts_has_video; + unsigned int numberofframes; + avisuperindex_chunk *suidx; + unsigned int suidx_size; + int nini; + int is_odml; + alt_demuxer_t alt_demuxer; +}; + +avi_priv_t::~avi_priv_t() { + if(idx_size > 0) delete idx; +} + #define MAX_PACKS 4096 -#define MIN(a,b) (((a)<(b))?(a):(b)) -#define AVI_IDX_OFFSET(x) ((((uint64_t)(x)->dwFlags&0xffff0000)<<16)+(x)->dwChunkOffset) +inline uint64_t avi_idx_offset(AVIINDEXENTRY* x) { return ((x->dwFlags&0xffff0000)<<16)+x->dwChunkOffset; } static int odml_get_vstream_id(int id, unsigned char res[]) { @@ -70,8 +79,8 @@ } static int avi_idx_cmp(const any_t*elem1,const any_t*elem2) { - register off_t a = AVI_IDX_OFFSET((AVIINDEXENTRY *)elem1); - register off_t b = AVI_IDX_OFFSET((AVIINDEXENTRY *)elem2); + register off_t a = avi_idx_offset((AVIINDEXENTRY *)elem1); + register off_t b = avi_idx_offset((AVIINDEXENTRY *)elem2); return (a > b) - (b > a); } @@ -116,7 +125,7 @@ int stream_id=-1; int idxfix_videostream=0; int idxfix_divx=0; -avi_priv_t* priv=reinterpret_cast<avi_priv_t*>(demuxer->priv); +avi_priv_t* priv=static_cast<avi_priv_t*>(demuxer->priv); off_t list_end=0; //---- AVI header: @@ -240,17 +249,17 @@ case mmioFOURCC('I','D','I','T'): hdr="Digitization Time";break; case ckidAVIMAINHDR: // read 'avih' - stream_read(demuxer->stream,(char*) &avih,MIN(size2,sizeof(avih))); + stream_read(demuxer->stream,(char*) &avih,std::min((unsigned long)size2,sizeof(avih))); le2me_MainAVIHeader(&avih); // swap to machine endian - chunksize-=MIN(size2,sizeof(avih)); + chunksize-=std::min((unsigned long)size2,sizeof(avih)); demuxer->movi_length=avih.dwTotalFrames; if(mp_conf.verbose) print_avih(&avih); else print_avih_flags(&avih); break; case ckidSTREAMHEADER: { // read 'strh' AVIStreamHeader h; - stream_read(demuxer->stream,(char*) &h,MIN(size2,sizeof(h))); + stream_read(demuxer->stream,(char*) &h,std::min((unsigned long)size2,sizeof(h))); le2me_AVIStreamHeader(&h); // swap to machine endian - chunksize-=MIN(size2,sizeof(h)); + chunksize-=std::min((unsigned long)size2,sizeof(h)); ++stream_id; if(h.fccType==mmioFOURCC('i','a','v','s')){ MSG_FATAL("DVDS chunk found!!! Still is not suupported\n"); @@ -587,7 +596,7 @@ if (!(idx->dwFlags & AVIIF_KEYFRAME) && idx->ckid == db) break; } if (i<priv->idx_size && db) { - stream_seek(demuxer->stream, AVI_IDX_OFFSET(idx)); + stream_seek(demuxer->stream, avi_idx_offset(idx)); id = stream_read_dword_le(demuxer->stream); if (id && id != db) // index fcc and real fcc differ? fix it. for (idx = &((AVIINDEXENTRY *)priv->idx)[0], i=0; i<priv->idx_size; i++, idx++){ @@ -767,7 +776,7 @@ if(stream_id==demux->audio->id){ if(!demux->audio->sh){ sh_audio_t* sh; - avi_priv_t *priv=reinterpret_cast<avi_priv_t*>(demux->priv); + avi_priv_t *priv=static_cast<avi_priv_t*>(demux->priv); demux->audio->sh=sh=reinterpret_cast<sh_audio_t*>(demux->a_streams[stream_id]); MSG_V("Auto-selected AVI audio ID = %d\n",demux->audio->id); if(sh->wf){ @@ -831,7 +840,7 @@ } static int demux_avi_read_packet(demuxer_t *demux,demux_stream_t *ds,unsigned int id,unsigned int len,int idxpos,int flags){ - avi_priv_t *priv=reinterpret_cast<avi_priv_t*>(demux->priv); + avi_priv_t *priv=static_cast<avi_priv_t*>(demux->priv); int skip; float pts=0; @@ -897,7 +906,7 @@ static int avi_read_nini(demuxer_t *demux,demux_stream_t* ds); static int avi_demux(demuxer_t *demux,demux_stream_t *__ds){ - avi_priv_t *priv=reinterpret_cast<avi_priv_t*>(demux->priv); + avi_priv_t *priv=static_cast<avi_priv_t*>(demux->priv); if(priv->alt_demuxer) return priv->alt_demuxer(demux,__ds); unsigned int id=0; unsigned int len; @@ -923,7 +932,7 @@ continue; // skip this chunk } - pos = (off_t)priv->idx_offset+AVI_IDX_OFFSET(idx); + pos = (off_t)priv->idx_offset+avi_idx_offset(idx); if((pos<demux->movi_start || pos>=demux->movi_end) && (demux->movi_end>demux->movi_start) && (demux->flags & DEMUXF_SEEKABLE)){ MSG_V("ChunkOffset out of range! idx=0x%X \n",pos); continue; @@ -999,7 +1008,7 @@ // 0 = EOF or no stream found // 1 = successfully read a packet static int avi_read_ni(demuxer_t *demux,demux_stream_t* ds){ -avi_priv_t *priv=reinterpret_cast<avi_priv_t*>(demux->priv); +avi_priv_t *priv=static_cast<avi_priv_t*>(demux->priv); unsigned int id=0; unsigned int len; int ret=0; @@ -1069,7 +1078,7 @@ // 0 = EOF or no stream found // 1 = successfully read a packet static int avi_read_nini(demuxer_t *demux,demux_stream_t* ds){ -avi_priv_t *priv=reinterpret_cast<avi_priv_t*>(demux->priv); +avi_priv_t *priv=static_cast<avi_priv_t*>(demux->priv); unsigned int id=0; unsigned int len; int ret=0; @@ -1177,7 +1186,7 @@ for(i=0;i<priv->idx_size;i++){ AVIINDEXENTRY* idx=&((AVIINDEXENTRY *)priv->idx)[i]; demux_stream_t* ds=demux_avi_select_stream(demuxer,idx->ckid); - off_t pos = priv->idx_offset + AVI_IDX_OFFSET(idx); + off_t pos = priv->idx_offset + avi_idx_offset(idx); if(a_pos==-1 && ds==demuxer->audio){ a_pos=pos; if(v_pos!=-1) break; @@ -1300,7 +1309,7 @@ } static void avi_seek(demuxer_t *demuxer,const seek_args_t* seeka){ - avi_priv_t *priv=reinterpret_cast<avi_priv_t*>(demuxer->priv); + avi_priv_t *priv=static_cast<avi_priv_t*>(demuxer->priv); demux_stream_t *d_audio=demuxer->audio; demux_stream_t *d_video=demuxer->video; sh_audio_t *sh_audio=reinterpret_cast<sh_audio_t*>(d_audio->sh); @@ -1480,9 +1489,7 @@ //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 } @@ -1503,11 +1510,10 @@ static void avi_close(demuxer_t *demuxer) { - avi_priv_t* priv=reinterpret_cast<avi_priv_t*>(demuxer->priv); + avi_priv_t* priv=static_cast<avi_priv_t*>(demuxer->priv); if(!priv) return; - if(priv->idx_size > 0) delete priv->idx; delete priv; } Modified: mplayerxp/libmpdemux/demux_bmp.cpp =================================================================== --- mplayerxp/libmpdemux/demux_bmp.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_bmp.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -199,11 +199,15 @@ #else -typedef struct { - int image_size; - int image_offset; -} bmp_image_t; +struct bmp_image_t : public Opaque { + public: + bmp_image_t() {} + virtual ~bmp_image_t() {} + int image_size; + int image_offset; +}; + // Check if a file is a BMP file depending on whether starts with 'BM' static MPXP_Rc bmp_probe(demuxer_t *demuxer) { @@ -218,7 +222,7 @@ // 1 = successfully read a packet static int bmp_demux(demuxer_t *demuxer,demux_stream_t *__ds) { - bmp_image_t *bmp_image = reinterpret_cast<bmp_image_t*>(demuxer->priv); + bmp_image_t *bmp_image = static_cast<bmp_image_t*>(demuxer->priv); stream_reset(demuxer->stream); stream_seek(demuxer->stream, bmp_image->image_offset); @@ -291,7 +295,7 @@ } static void bmp_close(demuxer_t* demuxer) { - bmp_image_t *bmp_image = reinterpret_cast<bmp_image_t*>(demuxer->priv); + bmp_image_t *bmp_image = static_cast<bmp_image_t*>(demuxer->priv); if(!bmp_image) return; Modified: mplayerxp/libmpdemux/demux_demuxers.cpp =================================================================== --- mplayerxp/libmpdemux/demux_demuxers.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_demuxers.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -9,33 +9,42 @@ #include "stheader.h" #include "demux_msg.h" -typedef struct dd_priv { - demuxer_t* vd; - demuxer_t* ad; - demuxer_t* sd; -} dd_priv_t; +struct dd_priv_t : public Opaque { + public: + dd_priv_t() {} + virtual ~dd_priv_t(); + demuxer_t* vd; + demuxer_t* ad; + demuxer_t* sd; +}; +dd_priv_t::~dd_priv_t() { + if(vd) FREE_DEMUXER(vd); + if(ad && ad != vd) FREE_DEMUXER(ad); + if(sd && sd != vd && sd != ad) FREE_DEMUXER(sd); +} + demuxer_t* new_demuxers_demuxer(demuxer_t* vd, demuxer_t* ad, demuxer_t* sd) { - demuxer_t* ret; - dd_priv_t* priv; + demuxer_t* ret; + dd_priv_t* priv; - ret = (demuxer_t*)mp_calloc(1,sizeof(demuxer_t)); + ret = new(zeromem) demuxer_t; - priv = (dd_priv_t*)mp_malloc(sizeof(dd_priv_t)); - priv->vd = vd; - priv->ad = ad; - priv->sd = sd; - ret->priv = priv; + priv = new(zeromem) dd_priv_t; + priv->vd = vd; + priv->ad = ad; + priv->sd = sd; + ret->priv = priv; - ret->file_format = DEMUXER_TYPE_DEMUXERS; - // Video is the most important :-) - ret->stream = vd->stream; - ret->flags = (vd->flags&DEMUXF_SEEKABLE) && (ad->flags&DEMUXF_SEEKABLE) && (sd->flags&DEMUXF_SEEKABLE); + ret->file_format = DEMUXER_TYPE_DEMUXERS; + // Video is the most important :-) + ret->stream = vd->stream; + ret->flags = (vd->flags&DEMUXF_SEEKABLE) && (ad->flags&DEMUXF_SEEKABLE) && (sd->flags&DEMUXF_SEEKABLE); - ret->video = vd->video; - ret->audio = ad->audio; - ret->sub = sd->sub; + ret->video = vd->video; + ret->audio = ad->audio; + ret->sub = sd->sub; check_pin("demuxer",ad->pin,DEMUX_PIN); check_pin("demuxer",vd->pin,DEMUX_PIN); @@ -44,7 +53,7 @@ } static int demux_demuxers_fill_buffer(demuxer_t *demux,demux_stream_t *ds) { - dd_priv_t* priv=reinterpret_cast<dd_priv_t*>(demux->priv); + dd_priv_t* priv=static_cast<dd_priv_t*>(demux->priv); if(ds->demuxer == priv->vd) return demux_fill_buffer(priv->vd,ds); @@ -58,7 +67,7 @@ } static void demux_demuxers_seek(demuxer_t *demuxer,const seek_args_t* seeka) { - dd_priv_t* priv=reinterpret_cast<dd_priv_t*>(demuxer->priv); + dd_priv_t* priv=static_cast<dd_priv_t*>(demuxer->priv); float pos; seek_args_t seek_p = { seeka->secs, 1 }; @@ -83,19 +92,11 @@ if(priv->sd != priv->vd) demux_seek(priv->sd,&seek_p); - } static void demux_close_demuxers(demuxer_t* demuxer) { - dd_priv_t* priv = reinterpret_cast<dd_priv_t*>(demuxer->priv); + dd_priv_t* priv = static_cast<dd_priv_t*>(demuxer->priv); - if(priv->vd) - FREE_DEMUXER(priv->vd); - if(priv->ad && priv->ad != priv->vd) - FREE_DEMUXER(priv->ad); - if(priv->sd && priv->sd != priv->vd && priv->sd != priv->ad) - FREE_DEMUXER(priv->sd); - delete priv; demux_info_free(demuxer); delete demuxer; Modified: mplayerxp/libmpdemux/demux_dv.cpp =================================================================== --- mplayerxp/libmpdemux/demux_dv.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_dv.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -39,15 +39,19 @@ #define DV_PAL_FRAME_SIZE 144000 #define DV_NTSC_FRAME_SIZE 122000 -typedef struct +struct rawdv_frames_t : public Opaque { - int current_frame; - int frame_size; - off_t current_filepos; - int frame_number; - dv_decoder_t *decoder; -} rawdv_frames_t; + public: + rawdv_frames_t() {} + virtual ~rawdv_frames_t() {}; + int current_frame; + int frame_size; + off_t current_filepos; + int frame_number; + dv_decoder_t *decoder; +}; + static void dv_seek(demuxer_t *demuxer,const seek_args_t* seeka) { rawdv_frames_t *frames = reinterpret_cast<rawdv_frames_t*>(demuxer->priv); @@ -100,7 +104,7 @@ // 1 = successfully read a packet static int dv_demux(demuxer_t *demuxer, demux_stream_t *ds) { - rawdv_frames_t *frames = (rawdv_frames_t *)demuxer->priv; + rawdv_frames_t *frames = static_cast<rawdv_frames_t*>(demuxer->priv); sh_video_t *sh_video = reinterpret_cast<sh_video_t*>(demuxer->video->sh); int bytes_read=0; // fprintf(stderr,"demux_rawdv_fill_buffer() seek to %qu, size: %d\n",frames->current_filepos,frames->frame_size); @@ -225,11 +229,10 @@ static void dv_close(demuxer_t* demuxer) { - rawdv_frames_t *frames = (rawdv_frames_t *)demuxer->priv; + rawdv_frames_t *frames = static_cast<rawdv_frames_t*>(demuxer->priv); - if(frames==0) - return; - delete frames; + if(frames==0) return; + delete frames; } static MPXP_Rc dv_control(const demuxer_t *demuxer,int cmd, any_t*arg) { Modified: mplayerxp/libmpdemux/demux_film.cpp =================================================================== --- mplayerxp/libmpdemux/demux_film.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_film.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -33,26 +33,33 @@ typedef struct _film_chunk_t { - off_t chunk_offset; - int chunk_size; - unsigned int syncinfo1; - unsigned int syncinfo2; + off_t chunk_offset; + int chunk_size; + unsigned int syncinfo1; + unsigned int syncinfo2; - float pts; + float pts; } film_chunk_t; -typedef struct _film_data_t -{ - unsigned int total_chunks; - unsigned int current_chunk; - film_chunk_t *chunks; - unsigned int chunks_per_second; - unsigned int film_version; -} film_data_t; +struct film_data_t : public Opaque { + public: + film_data_t() {} + virtual ~film_data_t(); + unsigned int total_chunks; + unsigned int current_chunk; + film_chunk_t *chunks; + unsigned int chunks_per_second; + unsigned int film_version; +}; + +film_data_t::~film_data_t() { + if(chunks) delete chunks; +} + static void film_seek(demuxer_t *demuxer, const seek_args_t* seeka) { - film_data_t *film_data = (film_data_t *)demuxer->priv; + film_data_t *film_data = static_cast<film_data_t*>(demuxer->priv); int new_current_chunk=(seeka->flags&DEMUX_SEEK_SET)?0:film_data->current_chunk; new_current_chunk += seeka->secs *(seeka->flags&DEMUX_SEEK_PERCENTS?film_data->total_chunks:film_data->chunks_per_second); @@ -90,7 +97,7 @@ int cvid_size; sh_video_t *sh_video = reinterpret_cast<sh_video_t*>(demuxer->video->sh); sh_audio_t *sh_audio = reinterpret_cast<sh_audio_t*>(demuxer->audio->sh); - film_data_t *film_data = (film_data_t *)demuxer->priv; + film_data_t *film_data = static_cast<film_data_t*>(demuxer->priv); film_chunk_t film_chunk; int length_fix_bytes; Demux_Packet* dp; @@ -210,7 +217,7 @@ int counting_chunks; unsigned int total_audio_bytes = 0; - film_data = (film_data_t *)mp_malloc(sizeof(film_data_t)); + film_data = new(zeromem) film_data_t; film_data->total_chunks = 0; film_data->current_chunk = 0; film_data->chunks = NULL; @@ -426,14 +433,10 @@ } static void film_close(demuxer_t* demuxer) { - film_data_t *film_data = reinterpret_cast<film_data_t*>(demuxer->priv); + film_data_t *film_data = reinterpret_cast<film_data_t*>(demuxer->priv); - if(!film_data) - return; - if(film_data->chunks) - delete film_data->chunks; - delete film_data; - + if(!film_data) return; + delete film_data; } static MPXP_Rc film_control(const demuxer_t *demuxer,int cmd,any_t*args) Modified: mplayerxp/libmpdemux/demux_fli.cpp =================================================================== --- mplayerxp/libmpdemux/demux_fli.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_fli.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -20,15 +20,24 @@ #include "stheader.h" #include "demux_msg.h" -typedef struct _fli_frames_t { - int num_frames; - int current_frame; - off_t *filepos; - unsigned int *frame_size; -} fli_frames_t; +struct fli_frames_t : public Opaque { + public: + fli_frames_t() {} + virtual ~fli_frames_t(); + int num_frames; + int current_frame; + off_t *filepos; + unsigned int *frame_size; +}; + +fli_frames_t::~fli_frames_t() { + if(filepos) delete filepos; + if(frame_size) delete frame_size; +} + static void fli_seek(demuxer_t *demuxer,const seek_args_t* seeka){ - fli_frames_t *frames = reinterpret_cast<fli_frames_t*>(demuxer->priv); + fli_frames_t *frames = static_cast<fli_frames_t*>(demuxer->priv); sh_video_t *sh_video = reinterpret_cast<sh_video_t*>(demuxer->video->sh); int newpos=(seeka->flags&DEMUX_SEEK_SET)?0:frames->current_frame; newpos+=seeka->secs*(seeka->flags&DEMUX_SEEK_PERCENTS?frames->num_frames:sh_video->fps); @@ -41,7 +50,7 @@ // 0 = EOF or no stream found // 1 = successfully read a packet static int fli_demux(demuxer_t *demuxer,demux_stream_t *__ds){ - fli_frames_t *frames = reinterpret_cast<fli_frames_t*>(demuxer->priv); + fli_frames_t *frames = static_cast<fli_frames_t*>(demuxer->priv); sh_video_t *sh_video = reinterpret_cast<sh_video_t*>(demuxer->video->sh); // see if the end has been reached @@ -77,7 +86,7 @@ static demuxer_t* fli_open(demuxer_t* demuxer){ sh_video_t *sh_video = NULL; - fli_frames_t *frames = (fli_frames_t *)mp_malloc(sizeof(fli_frames_t)); + fli_frames_t *frames = new(zeromem) fli_frames_t; int frame_number; int speed; unsigned int frame_size; @@ -88,7 +97,7 @@ stream_reset(demuxer->stream); stream_seek(demuxer->stream, 0); - header = (unsigned char*)mp_malloc(sizeof(BITMAPINFOHEADER) + 128); + header = new unsigned char[sizeof(BITMAPINFOHEADER) + 128]; stream_read(demuxer->stream, header + sizeof(BITMAPINFOHEADER), 128); stream_seek(demuxer->stream, 0); @@ -103,7 +112,7 @@ magic_number); delete header; delete frames; - return(NULL); + return NULL; } // fetch the number of frames @@ -179,17 +188,11 @@ } static void fli_close(demuxer_t* demuxer) { - fli_frames_t *frames = reinterpret_cast<fli_frames_t*>(demuxer->priv); + fli_frames_t *frames = static_cast<fli_frames_t*>(demuxer->priv); - if(!frames) - return; + if(!frames) return; - if(frames->filepos) - delete frames->filepos; - if(frames->frame_size) - delete frames->frame_size; - - delete frames; + delete frames; } static MPXP_Rc fli_control(const demuxer_t *demuxer,int cmd,any_t*args) Modified: mplayerxp/libmpdemux/demux_lavf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_lavf.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_lavf.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -38,16 +38,28 @@ #define BIO_BUFFER_SIZE 32768 -typedef struct lavf_priv_t{ - AVInputFormat *avif; - AVFormatContext *avfc; - AVIOContext *pb; - uint8_t buffer[BIO_BUFFER_SIZE]; - int audio_streams; - int video_streams; - int64_t last_pts; -}lavf_priv_t; +struct lavf_priv_t : public Opaque { + public: + lavf_priv_t() {} + virtual ~lavf_priv_t(); + AVInputFormat *avif; + AVFormatContext *avfc; + AVIOContext *pb; + uint8_t buffer[BIO_BUFFER_SIZE]; + int audio_streams; + int video_streams; + int64_t last_pts; +}; + +lavf_priv_t::~lavf_priv_t() { + if(avfc) { + av_freep(&avfc->key); + avformat_close_input(&avfc); + } + av_freep(&pb); +} + static char *opt_format; static char *opt_cryptokey; extern int ts_prog; @@ -173,8 +185,8 @@ AVProbeData avpd; uint8_t buf[PROBE_BUF_SIZE]; lavf_priv_t *priv; - if(!demuxer->priv) demuxer->priv=new(zeromem) lavf_priv_t; - priv= reinterpret_cast<lavf_priv_t*>(demuxer->priv); + priv=new(zeromem) lavf_priv_t; + demuxer->priv=priv; av_register_all(); if(mp_conf.verbose>1) av_log_set_level(AV_LOG_DEBUG); @@ -216,7 +228,7 @@ static demuxer_t* lavf_open(demuxer_t *demuxer){ AVFormatContext *avfc; - lavf_priv_t *priv= reinterpret_cast<lavf_priv_t*>(demuxer->priv); + lavf_priv_t *priv= static_cast<lavf_priv_t*>(demuxer->priv); unsigned j; int err,i,g; char mp_filename[256]="mpxp:"; @@ -402,7 +414,7 @@ static int lavf_demux(demuxer_t *demux, demux_stream_t *dsds){ UNUSED(dsds); - lavf_priv_t *priv= reinterpret_cast<lavf_priv_t*>(demux->priv); + lavf_priv_t *priv= static_cast<lavf_priv_t*>(demux->priv); AVPacket pkt; Demux_Packet *dp; demux_stream_t *ds; @@ -440,20 +452,9 @@ return 1; } - if(0/*pkt.destruct == av_destruct_packet*/){ - //ok kids, dont try this at home :) - dp=new(zeromem) Demux_Packet(pkt.size); - dp->len=pkt.size; - dp->next=NULL; -// dp->refcount=1; -// dp->master=NULL; - dp->buffer=pkt.data; - pkt.destruct= NULL; - }else{ - dp=new(zeromem) Demux_Packet(pkt.size); - memcpy(dp->buffer, pkt.data, pkt.size); - av_free_packet(&pkt); - } + dp=new(zeromem) Demux_Packet(pkt.size); + memcpy(dp->buffer, pkt.data, pkt.size); + av_free_packet(&pkt); if(pkt.pts != AV_NOPTS_VALUE){ dp->pts=pkt.pts * av_q2d(priv->avfc->streams[id]->time_base); @@ -467,7 +468,7 @@ } static void lavf_seek(demuxer_t *demuxer,const seek_args_t* seeka){ - lavf_priv_t *priv = reinterpret_cast<lavf_priv_t*>(demuxer->priv); + lavf_priv_t *priv = static_cast<lavf_priv_t*>(demuxer->priv); MSG_DBG2("lavf_demux(%p, %f, %d)\n", demuxer, seeka->secs, seeka->flags); av_seek_frame(priv->avfc, -1, priv->last_pts + seeka->secs*AV_TIME_BASE, seeka->secs < 0 ? AVSEEK_FLAG_BACKWARD : 0); @@ -483,14 +484,10 @@ static void lavf_close(demuxer_t *demuxer) { - lavf_priv_t* priv = reinterpret_cast<lavf_priv_t*>(demuxer->priv); + lavf_priv_t* priv = static_cast<lavf_priv_t*>(demuxer->priv); if (priv){ - if(priv->avfc) { - av_freep(&priv->avfc->key); - avformat_close_input(&priv->avfc); - } - av_freep(&priv->pb); - delete priv; demuxer->priv= NULL; + delete priv; + demuxer->priv=NULL; } } Modified: mplayerxp/libmpdemux/demux_mkv.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mkv.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_mkv.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -567,51 +567,97 @@ char* name; } demux_chapter_t; -typedef struct mkv_demuxer -{ - off_t segment_start; +struct mkv_demuxer_t : public Opaque { + public: + mkv_demuxer_t() {} + virtual ~mkv_demuxer_t(); - float duration, last_pts; - uint64_t last_filepos; + void free_cached_dps (); + void free_trackentry(mkv_track_t *track); - mkv_track_t **tracks; - int num_tracks; + off_t segment_start; - uint64_t tc_scale, cluster_tc, first_tc; - int has_first_tc; + float duration, last_pts; + uint64_t last_filepos; - uint64_t cluster_size; - uint64_t blockgroup_size; + mkv_track_t **tracks; + unsigned num_tracks; - mkv_index_t *indexes; - int num_indexes; + uint64_t tc_scale, cluster_tc, first_tc; + int has_first_tc; - off_t *parsed_cues; - int parsed_cues_num; - off_t *parsed_seekhead; - int parsed_seekhead_num; + uint64_t cluster_size; + uint64_t blockgroup_size; - uint64_t *cluster_positions; - int num_cluster_pos; + mkv_index_t *indexes; + int num_indexes; - int64_t skip_to_timecode; - int v_skip_to_keyframe, a_skip_to_keyframe; + off_t *parsed_cues; + int parsed_cues_num; + off_t *parsed_seekhead; + int parsed_seekhead_num; - int64_t stop_timecode; + uint64_t *cluster_positions; + int num_cluster_pos; - int last_aid; - int audio_tracks[MAX_A_STREAMS]; + int64_t skip_to_timecode; + int v_skip_to_keyframe, a_skip_to_keyframe; - mkv_attachment_t *attachments; - int num_attachments; + int64_t stop_timecode; + + int last_aid; + int audio_tracks[MAX_A_STREAMS]; + + mkv_attachment_t *attachments; + unsigned num_attachments; /* TODO: move this stuff into demuxer somehow!*/ - demux_chapter_t* chapters; - int num_chapters; + demux_chapter_t* chapters; + int num_chapters; +/* For VobSubs and SSA/ASS */ + mkv_sh_sub_t *sh_sub; +}; - /* For VobSubs and SSA/ASS */ - mkv_sh_sub_t *sh_sub; -} mkv_demuxer_t; +static void demux_mkv_free_encodings(mkv_content_encoding_t *encodings, int numencodings); +/** + * \brief mp_free any data associated with given track + * \param track track of which to mp_free data + */ +void mkv_demuxer_t::free_trackentry(mkv_track_t *track) { + if (track->name) delete track->name; + if (track->codec_id) delete track->codec_id; + if (track->language) delete track->language; + if (track->private_data) delete track->private_data; + if (track->audio_buf) delete track->audio_buf; + if (track->audio_timestamp) delete track->audio_timestamp; +#ifdef USE_ASS + if (track->sh_sub && track->sh_sub->ass_track) ass_free_track (track->sh_sub->ass_track); +#endif + demux_mkv_free_encodings(track->encodings, track->num_encodings); + delete track; +} +mkv_demuxer_t::~mkv_demuxer_t() { + unsigned i; + free_cached_dps (); + if (tracks) { + for (i=0; i<num_tracks; i++) + free_trackentry(tracks[i]); + delete tracks; + } + if (indexes) delete indexes; + if (cluster_positions) delete cluster_positions; + if (parsed_cues) delete parsed_cues; + if (parsed_seekhead) delete parsed_seekhead; + if (attachments) { + for (i = 0; i < num_attachments; ++i) { + if (attachments[i].name) delete attachments[i].name; + if (attachments[i].mime) delete attachments[i].mime; + if (attachments[i].data) delete attachments[i].data; + } + delete attachments; + } +} + static int mkv_add_chapter(mkv_demuxer_t* demuxer, const char* name, uint64_t start, uint64_t end){ if (demuxer->chapters == NULL) demuxer->chapters = new demux_chapter_t[32]; @@ -645,8 +691,7 @@ *array = mp_realloc(*array, (nelem + 32) * elsize); } -static mkv_track_t * -demux_mkv_find_track_by_num (mkv_demuxer_t *d, int n, int type) +static mkv_track_t * demux_mkv_find_track_by_num (mkv_demuxer_t *d, int n, int type) { int i, id; @@ -841,16 +886,14 @@ * * \param demuxer The demuxer for which the cache is to be freed. */ -static void -free_cached_dps (demuxer_t *demuxer) +void mkv_demuxer_t::free_cached_dps () { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; mkv_track_t *track; int i, k; - for (k = 0; k < mkv_d->num_tracks; k++) + for (k = 0; k < num_tracks; k++) { - track = mkv_d->tracks[k]; + track = tracks[k]; for (i = 0; i < track->num_cached_dps; i++) delete track->cached_dps[i]; delete track->cached_dps; track->cached_dps = NULL; @@ -1010,7 +1053,7 @@ static int demux_mkv_read_info (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); stream_t *s = demuxer->stream; uint64_t length, l; int il; @@ -1356,36 +1399,10 @@ return len; } -/** - * \brief mp_free any data associated with given track - * \param track track of which to mp_free data - */ -static void -demux_mkv_free_trackentry(mkv_track_t *track) { - if (track->name) - delete track->name; - if (track->codec_id) - delete track->codec_id; - if (track->language) - delete track->language; - if (track->private_data) - delete track->private_data; - if (track->audio_buf) - delete track->audio_buf; - if (track->audio_timestamp) - delete track->audio_timestamp; -#ifdef USE_ASS - if (track->sh_sub && track->sh_sub->ass_track) - ass_free_track (track->sh_sub->ass_track); -#endif - demux_mkv_free_encodings(track->encodings, track->num_encodings); - delete track; -} - static int demux_mkv_read_trackentry (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); stream_t *s = demuxer->stream; mkv_track_t *track; uint64_t len, length, l; @@ -1559,14 +1576,14 @@ return len; err_out: - demux_mkv_free_trackentry(track); + mkv_d->free_trackentry(track); return 0; } static int demux_mkv_read_tracks (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); stream_t *s = demuxer->stream; uint64_t length, l; int il; @@ -1601,7 +1618,7 @@ static int demux_mkv_read_cues (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); stream_t *s = demuxer->stream; uint64_t length, l, time, track, pos; off_t off; @@ -1717,7 +1734,7 @@ static int demux_mkv_read_chapters (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); stream_t *s = demuxer->stream; uint64_t length, l; int il; @@ -1811,7 +1828,7 @@ if (!name) name = mp_strdup("(unnamed)"); - cid = mkv_add_chapter(reinterpret_cast<mkv_demuxer_t*>(demuxer->priv), name, start, end); + cid = mkv_add_chapter(static_cast<mkv_demuxer_t*>(demuxer->priv), name, start, end); MSG_V( "[mkv] Chapter %u from %02d:%02d:%02d." @@ -1861,7 +1878,7 @@ static int demux_mkv_read_attachments (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); stream_t *s = demuxer->stream; uint64_t length, l; int il; @@ -1976,7 +1993,7 @@ static int demux_mkv_read_seekhead (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); stream_t *s = demuxer->stream; uint64_t length, l, seek_pos, saved_pos, num; uint32_t seek_id; @@ -2109,7 +2126,7 @@ static void display_create_tracks (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *)demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); int i, vid=0, aid=0, sid=0; for (i=0; i<mkv_d->num_tracks; i++) @@ -2330,7 +2347,7 @@ static int demux_mkv_open_audio (demuxer_t *demuxer, mkv_track_t *track, int aid) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); sh_audio_t *sh_a = new_sh_audio_aid(demuxer, track->tnum, aid); Demux_Packet *dp; if(!sh_a) return 1; @@ -2657,7 +2674,7 @@ static void demux_mkv_parse_vobsub_data (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); mkv_track_t *track; int i, m; unsigned size; @@ -2699,7 +2716,7 @@ static void demux_mkv_parse_ass_data (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); mkv_track_t *track; int i, m, size; uint8_t *buffer; @@ -3058,39 +3075,9 @@ static void mkv_close (demuxer_t *demuxer) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); - if (mkv_d) - { - int i; - free_cached_dps (demuxer); - if (mkv_d->tracks) - { - for (i=0; i<mkv_d->num_tracks; i++) - demux_mkv_free_trackentry(mkv_d->tracks[i]); - delete mkv_d->tracks; - } - if (mkv_d->indexes) - delete mkv_d->indexes; - if (mkv_d->cluster_positions) - delete mkv_d->cluster_positions; - if (mkv_d->parsed_cues) - delete mkv_d->parsed_cues; - if (mkv_d->parsed_seekhead) - delete mkv_d->parsed_seekhead; - if (mkv_d->attachments) { - for (i = 0; i < mkv_d->num_attachments; ++i) { - if (mkv_d->attachments[i].name) - delete mkv_d->attachments[i].name; - if (mkv_d->attachments[i].mime) - delete mkv_d->attachments[i].mime; - if (mkv_d->attachments[i].data) - delete mkv_d->attachments[i].data; - } - delete mkv_d->attachments; - } - delete mkv_d; - } + if (mkv_d) delete mkv_d; } static int @@ -3282,7 +3269,7 @@ handle_realvideo (demuxer_t *demuxer, mkv_track_t *track, uint8_t *buffer, uint32_t size, int block_bref) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); Demux_Packet *dp; uint32_t timestamp = mkv_d->last_pts * 1000; uint32_t *hdr; @@ -3334,7 +3321,7 @@ handle_realaudio (demuxer_t *demuxer, mkv_track_t *track, uint8_t *buffer, uint32_t size, int block_bref) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); int sps = track->sub_packet_size; int sph = track->sub_packet_h; int cfs = track->coded_framesize; @@ -3492,7 +3479,7 @@ handle_video_bframes (demuxer_t *demuxer, mkv_track_t *track, uint8_t *buffer, uint32_t size, int block_bref, int block_fref) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); Demux_Packet *dp; dp = new(zeromem) Demux_Packet (size); @@ -3522,7 +3509,7 @@ handle_block (demuxer_t *demuxer, uint8_t *block, uint64_t length, uint64_t block_duration, int64_t block_bref, int64_t block_fref, uint8_t simpleblock) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); mkv_track_t *track = NULL; demux_stream_t *ds = NULL; uint64_t old_length; @@ -3687,7 +3674,7 @@ static int mkv_demux (demuxer_t *demuxer, demux_stream_t *ds) { UNUSED(ds); - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); stream_t *s = demuxer->stream; uint64_t l; int il, tmp; @@ -3834,10 +3821,10 @@ static void mkv_seek (demuxer_t *demuxer,const seek_args_t* seeka) { - free_cached_dps (demuxer); + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); + mkv_d->free_cached_dps (); if (!(seeka->flags & 2)) /* time in secs */ { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; stream_t *s = demuxer->stream; int64_t target_timecode = 0, diff, min_diff=0xFFFFFFFFFFFFFFFLL; int i; @@ -3958,7 +3945,7 @@ MSG_V( "[mkv] seek unsupported flags\n"); else { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); stream_t *s = demuxer->stream; uint64_t target_filepos; mkv_index_t *_index = NULL; @@ -3996,7 +3983,7 @@ static MPXP_Rc mkv_control (const demuxer_t *demuxer, int cmd, any_t*arg) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); switch (cmd) { #if 0 case DEMUXER_CTRL_GET_TIME_LENGTH: @@ -4043,7 +4030,7 @@ demux_mkv_get_sub_lang(demuxer_t *demuxer, int track_num, char *lang, int maxlen) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); mkv_track_t *track = demux_mkv_find_track_by_num (mkv_d, track_num, MATROSKA_TRACK_SUBTITLE); if (track && track->language && strcmp(track->language, "und")) strncpy(lang, track->language, maxlen); @@ -4063,7 +4050,7 @@ demux_mkv_get_audio_lang(demuxer_t *demuxer, int track_num, char *lang, int maxlen) { - mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_demuxer_t *mkv_d = static_cast<mkv_demuxer_t*>(demuxer->priv); mkv_track_t *track = demux_mkv_find_track_by_num (mkv_d, track_num, MATROSKA_TRACK_AUDIO); if (track && track->language && strcmp(track->language, "und")) strncpy(lang, track->language, maxlen); Modified: mplayerxp/libmpdemux/demux_mov.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mov.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_mov.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -50,8 +50,8 @@ #include <fcntl.h> #endif -#define BE_16(x) be2me_16(x) -#define BE_32(x) be2me_32(x) +inline uint16_t BE_16(uint16_t x) { return be2me_16(x); } +inline uint32_t BE_32(uint32_t x) { return be2me_32(x); } #define char2short(x,y) BE_16(*((uint16_t *)&(((unsigned char *)(x))[(y)]))) #define char2int(x,y) BE_32(*((uint32_t *)&(((unsigned char *)(x))[(y)]))) @@ -286,20 +286,43 @@ #define MOV_MAX_TRACKS 256 #define MOV_MAX_SUBLEN 1024 -typedef struct { - off_t moov_start; - off_t moov_end; - off_t mdat_start; - off_t mdat_end; - int track_db; - mov_track_t* tracks[MOV_MAX_TRACKS]; - int timescale; // movie timescale - int duration; // movie duration (in movie timescale units) +struct mov_priv_t : public Opaque { + public: + mov_priv_t() {}; + virtual ~mov_priv_t(); + + off_t moov_start; + off_t moov_end; + off_t mdat_start; + off_t mdat_end; + int track_db; + mov_track_t* tracks[MOV_MAX_TRACKS]; + int timescale; // movie timescale + int duration; // movie duration (in movie timescale units) /* ---- mov (!!! ALWAYS 0 !!!) ----- */ - unsigned int ss_mul; /**< compression ratio for packet descriptor */ - unsigned int ss_div; /**< compression ratio for packet descriptor */ -} mov_priv_t; + unsigned int ss_mul; /**< compression ratio for packet descriptor */ + unsigned int ss_div; /**< compression ratio for packet descriptor */ +}; +mov_priv_t::~mov_priv_t() { + for (unsigned i = 0; i < MOV_MAX_TRACKS; i++) { + mov_track_t *track = tracks[i]; + if (track) { + delete track->tkdata; + delete track->stdata; + delete track->stream_header; + delete track->samples; + delete track->chunks; + delete track->chunkmap; + delete track->durmap; + delete track->keyframes; + delete track->editlist; + delete track->desc; + delete track; + } + } +} + #define MOV_FOURCC(a,b,c,d) ((a<<24)|(b<<16)|(c<<8)|(d)) static MPXP_Rc mov_probe(demuxer_t* demuxer){ @@ -575,7 +598,7 @@ off_t pos, off_t len, mov_track_t* trak); static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak){ - mov_priv_t* priv=reinterpret_cast<mov_priv_t*>(demuxer->priv); + mov_priv_t* priv=static_cast<mov_priv_t*>(demuxer->priv); while(1){ off_t pos; off_t len; @@ -1772,7 +1795,7 @@ } static demuxer_t* mov_open(demuxer_t* demuxer){ - mov_priv_t* priv=reinterpret_cast<mov_priv_t*>(demuxer->priv); + mov_priv_t* priv=static_cast<mov_priv_t*>(demuxer->priv); int t_no; int best_a_id=-1, best_a_len=0; int best_v_id=-1, best_v_len=0; @@ -1908,7 +1931,7 @@ // 0 = EOF or no stream found // 1 = successfully read a packet static int mov_demux(demuxer_t *demuxer,demux_stream_t* ds){ - mov_priv_t* priv=reinterpret_cast<mov_priv_t*>(demuxer->priv); + mov_priv_t* priv=static_cast<mov_priv_t*>(demuxer->priv); mov_track_t* trak=NULL; float pts; int x; @@ -2039,7 +2062,7 @@ } static void mov_seek(demuxer_t *demuxer,const seek_args_t* seeka){ - mov_priv_t* priv=reinterpret_cast<mov_priv_t*>(demuxer->priv); + mov_priv_t* priv=static_cast<mov_priv_t*>(demuxer->priv); demux_stream_t* ds; mov_track_t* trak; @@ -2066,27 +2089,9 @@ static void mov_close(demuxer_t *demuxer) { - mov_priv_t* priv = reinterpret_cast<mov_priv_t*>(demuxer->priv); - int i; - if (!priv) - return; - for (i = 0; i < MOV_MAX_TRACKS; i++) { - mov_track_t *track = priv->tracks[i]; - if (track) { - delete track->tkdata; - delete track->stdata; - delete track->stream_header; - delete track->samples; - delete track->chunks; - delete track->chunkmap; - delete track->durmap; - delete track->keyframes; - delete track->editlist; - delete track->desc; - delete track; - } - } - delete priv; + mov_priv_t* priv = static_cast<mov_priv_t*>(demuxer->priv); + if (!priv) return; + delete priv; } static MPXP_Rc mov_control(const demuxer_t *demuxer,int cmd,any_t*args) Modified: mplayerxp/libmpdemux/demux_mpg.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mpg.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_mpg.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -44,17 +44,21 @@ #define MPGPES_BAD_PTS -1 typedef int (*alt_demuxer_t)(demuxer_t *demux,demux_stream_t *__ds); -typedef struct mpg_demuxer { - float last_pts; - float final_pts; - int has_valid_timestamps; - unsigned int es_map[0x40]; //es map of stream types (associated to the pes id) from 0xb0 to 0xef - int num_a_streams; - int a_stream_ids[MAX_A_STREAMS]; - int last_sub_pts; - alt_demuxer_t alt_demuxer; -} mpg_demuxer_t; +struct mpg_demuxer_t : public Opaque { + public: + mpg_demuxer_t() {} + virtual ~mpg_demuxer_t() {} + float last_pts; + float final_pts; + int has_valid_timestamps; + unsigned int es_map[0x40]; //es map of stream types (associated to the pes id) from 0xb0 to 0xef + int num_a_streams; + int a_stream_ids[MAX_A_STREAMS]; + int last_sub_pts; + alt_demuxer_t alt_demuxer; +}; + static struct mpg_stat_s { int num_elementary_packets100; int num_elementary_packets101; @@ -93,7 +97,7 @@ static int parse_psm(demuxer_t *demux, int len) { unsigned char c, id, type; unsigned int plen, prog_len, es_map_len; - mpg_demuxer_t *priv = (mpg_demuxer_t *) demux->priv; + mpg_demuxer_t *priv = static_cast<mpg_demuxer_t*>(demux->priv); MSG_DBG2("PARSE_PSM, len=%d\n", len); if(! len) @@ -152,7 +156,7 @@ static void new_audio_stream(demuxer_t *demux, int aid){ if(!demux->a_streams[aid]){ - mpg_demuxer_t *mpg_d=(mpg_demuxer_t*)demux->priv; + mpg_demuxer_t *mpg_d=static_cast<mpg_demuxer_t*>(demux->priv); sh_audio_t* sh_a; new_sh_audio(demux,aid); sh_a = (sh_audio_t*)demux->a_streams[aid]; @@ -193,7 +197,7 @@ int pts=MPGPES_BAD_PTS; unsigned int dts=0; demux_stream_t *ds=NULL; - mpg_demuxer_t *priv = (mpg_demuxer_t *) demux->priv; + mpg_demuxer_t *priv = static_cast<mpg_demuxer_t*>(demux->priv); MSG_DBG3("demux_read_packet: %X\n",id); @@ -437,7 +441,7 @@ } static int mpgps_demux(demuxer_t *demux,demux_stream_t *__ds){ - mpg_demuxer_t* mpg_d = reinterpret_cast<mpg_demuxer_t*>(demux->priv); + mpg_demuxer_t* mpg_d = static_cast<mpg_demuxer_t*>(demux->priv); if(mpg_d->alt_demuxer) return mpg_d->alt_demuxer(demux,__ds); unsigned int head=0; int skipped=0; @@ -783,37 +787,37 @@ static demuxer_t* mpgps_open(demuxer_t*demuxer) { - sh_video_t *sh_video=reinterpret_cast<sh_video_t*>(demuxer->video->sh); - mpg_demuxer_t* mpg_d; + sh_video_t *sh_video=reinterpret_cast<sh_video_t*>(demuxer->video->sh); + mpg_demuxer_t* mpg_d=static_cast<mpg_demuxer_t*>(demuxer->priv); - if(!sh_video) MSG_WARN("MPEG: " MSGTR_MissingVideoStream); - else sh_video->ds=demuxer->video; + if(!sh_video) MSG_WARN("MPEG: " MSGTR_MissingVideoStream); + else sh_video->ds=demuxer->video; - mpg_d->has_valid_timestamps = 1; - mpg_d->num_a_streams = 0; + mpg_d->has_valid_timestamps = 1; + mpg_d->num_a_streams = 0; - if(demuxer->audio->id!=-2) { - if(!ds_fill_buffer(demuxer->audio)){ - MSG_WARN("MPEG: " MSGTR_MissingAudioStream); - demuxer->audio->sh=NULL; - } else { - sh_audio_t *sh_audio=reinterpret_cast<sh_audio_t*>(demuxer->audio->sh); - sh_audio->ds=demuxer->audio; - } - } + if(demuxer->audio->id!=-2) { + if(!ds_fill_buffer(demuxer->audio)){ + MSG_WARN("MPEG: " MSGTR_MissingAudioStream); + demuxer->audio->sh=NULL; + } else { + sh_audio_t *sh_audio=reinterpret_cast<sh_audio_t*>(demuxer->audio->sh); + sh_audio->ds=demuxer->audio; + } + } check_pin("demuxer",demuxer->pin,DEMUX_PIN); return demuxer; } static void mpgps_close(demuxer_t*demuxer) { - mpg_demuxer_t* mpg_d = reinterpret_cast<mpg_demuxer_t*>(demuxer->priv); + mpg_demuxer_t* mpg_d = static_cast<mpg_demuxer_t*>(demuxer->priv); if (mpg_d) delete mpg_d; } static MPXP_Rc mpgps_control(const demuxer_t *demuxer,int cmd,any_t*arg) { - mpg_demuxer_t *mpg_d=(mpg_demuxer_t*)demuxer->priv; + mpg_demuxer_t *mpg_d=static_cast<mpg_demuxer_t*>(demuxer->priv); switch(cmd) { case DEMUX_CMD_SWITCH_AUDIO: if (mpg_d && mpg_d->num_a_streams > 1 && demuxer->audio && demuxer->audio->sh) { Modified: mplayerxp/libmpdemux/demux_mpxp64.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mpxp64.cpp 2012-11-28 10:43:38 UTC (rev 472) +++ mplayerxp/libmpdemux/demux_mpxp64.cpp 2012-11-28 12:58:58 UTC (rev 473) @@ -30,21 +30,25 @@ #define MAX_AV_STREAMS MAX_V_STREAMS+MAX_A_STREAMS+MAX_S_STREAMS -typedef struct { - unsigned nstreams; - mpxpav64FileProperties_t fprop; - mpxpav64StreamProperties_t sprop[MAX_AV_STREAMS]; - uint64_t data_off[MAX_AV_STREAMS]; - // deltas - float prev_pts[MAX_AV_STREAMS]; - float prev_xpts[MAX_AV_STREAMS]; - uint64_t prev_size[MAX_AV_STREAMS]; - uint32_t prev_id; - // index stuff: - any_t* idx[MAX_AV_STREAMS]; - unsigned idx_size[MAX_AV_STREAMS]; -} mpxpav64_priv_t; +struct mpxpav64_priv_t : public Opaque { + public: + mpxpav64_priv_t() {} + virtual ~mpxpav64_priv_t() {} + unsigned nstreams; + mpxpav64FileProperties_t fprop; + mpxpav64StreamProperties_t sprop[MAX_AV_STREAMS]; + uint64_t data_off[MAX_AV_STREAMS]; + // deltas + float prev_pts[MAX_AV_STREAMS]; + float prev_xpts[MAX_AV_STREAMS]; + uint64_t prev_size[MAX_AV_STREAMS]; + uint32_t prev_id; + // index stuff: + any_t* idx[MAX_AV_STREAMS]; + unsigned idx_size[MAX_AV_STREAMS]; +}; + #define le2me_ImageDesc(h) { \ (h)->idSize = le2me_32((h)->idSize); \ (h)->cType = le2me_32((h)->cType); \ @@ -67,30 +71,7 @@ } #define MAX_PACKS 4096 -#define MIN(a,b) (((a)<(b))?(a):(b)) -#if 0 -/* -According to : -"MPEG Extension to AVI File Format "Editable MPEG FileFormat" -Draft Version 1.1 of 5/13/94" -*/ -static float avi_aspects[]= -{ - 1.0000, 0.6735, 0.7031, 0.7615, 0.8055, 0.8437, 0.8935, - 0.9375, 0.9815, 1.0255, 1.0695, 1.1250, 1.1575, 1.2015 -}; - -static float get_avi_aspect(unsigned char id) -{ - if(id>0&&id<15) - { - return avi_aspects[id-1]; - } - else return 1.0; -} -#endif - static void print_FileProp(mpxpav64FileProperties_t *fp) { MSG_V("\n========== mpxpav64FileProperties_t =================\n" @@ -159,7 +140,7 @@ { uint64_t i,fpos,iid; stream_t *s=demuxer->stream; - mpxpav64_priv_t *priv=reinterpret_cast<mpxpav64_priv_t*>(demuxer->priv); + mpxpav64_priv_t *priv=static_cast<mpxpav64_priv_t*>(demuxer->priv); unsigned sid; int is_valid; fpos=stream_tell(s); @@ -202,7 +183,7 @@ } static int mpxpav64_read_st64v(demuxer_t *demuxer,unsigned hsize,unsigned id){ - mpxpav64_priv_t *priv=reinterpret_cast<mpxpav64_priv_t*>(demuxer->priv); + mpxpav64_priv_t *priv=static_cast<mpxpav64_priv_t*>(demuxer->priv); stream_t *s=demuxer->stream; uint32_t fourcc,fsize; int have_bih=0; @@ -327,7 +308,7 @@ static int mpxpav64_read_st64(demuxer_t *demuxer,unsigned hsize,unsigned id){ stream_t *s=demuxer->stream; - mpxpav64_priv_t *priv=reinterpret_cast<mpxpav64_priv_t*>(demuxer->priv); + mpxpav64_priv_t *priv=static_cast<mpxpav64_priv_t*>(demuxer->priv); uint64_t idx_off; uint32_t fourcc,hoff; hoff=stream_tell(s); @@ -379,7 +360,7 @@ #ifdef USE_ICONV static void mpxpav64_read_fcnt(demuxer_t* demuxer,unsigned fsize) { - mpxpav64_priv_t *priv=reinterpret_cast<mpxpav64_priv_t*>(demuxer->priv); + mpxpav64_priv_t *priv=static_cast<mpxpav64_priv_t*>(demuxer->priv); stream_t *s=demuxer->stream; int64_t hoff; const char * codepage; @@ -439,7 +420,7 @@ static void mpxpav64_reset_prevs(demuxer_t *demuxer) { - mpxpav64_priv_t* priv=reinterpret_cast<mpxpav64_priv_t*>(demuxer->priv); + mpxpav64_priv_t* priv... [truncated message content] |