[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[490] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2012-11-30 08:43:44
|
Revision: 490 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=490&view=rev Author: nickols_k Date: 2012-11-30 08:43:33 +0000 (Fri, 30 Nov 2012) Log Message: ----------- add minimal antiviral protection Modified Paths: -------------- mplayerxp/libmpdemux/demux_audio.cpp mplayerxp/libmpdemux/demux_mkv.cpp mplayerxp/libmpdemux/demuxer.cpp mplayerxp/libmpdemux/stheader.h mplayerxp/mplayerxp.h Modified: mplayerxp/libmpdemux/demux_audio.cpp =================================================================== --- mplayerxp/libmpdemux/demux_audio.cpp 2012-11-30 07:29:04 UTC (rev 489) +++ mplayerxp/libmpdemux/demux_audio.cpp 2012-11-30 08:43:33 UTC (rev 490) @@ -1013,6 +1013,8 @@ } sh_audio = new_sh_audio(demuxer,0); MSG_DBG2("mp3_header off: st_pos=%lu n=%lu HDR_SIZE=%u\n",st_pos,n,HDR_SIZE); + demuxer->movi_start = stream_tell(s); + demuxer->movi_end = s->end_pos; switch(frmt) { case RAW_FLAC: { @@ -1110,6 +1112,7 @@ sh_audio->i_bps=mp3_brate; sh_audio->rate=mp3_samplerate; sh_audio->nch=mp3_channels; + demuxer->movi_start-=4; if(!read_mp3v1_tags(demuxer,hdr,pos)) return 0; /* id3v1 may coexist with id3v2 */ break; case RAW_MP3: @@ -1117,6 +1120,7 @@ sh_audio->i_bps=mp3_brate; sh_audio->rate=mp3_samplerate; sh_audio->nch=mp3_channels; + demuxer->movi_start-=4; if(!read_mp3v1_tags(demuxer,hdr,pos)) return 0; /* id3v1 may coexist with id3v2 */ break; case RAW_AC3: Modified: mplayerxp/libmpdemux/demux_mkv.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mkv.cpp 2012-11-30 07:29:04 UTC (rev 489) +++ mplayerxp/libmpdemux/demux_mkv.cpp 2012-11-30 08:43:33 UTC (rev 490) @@ -4001,8 +4001,8 @@ if (demuxer->audio && demuxer->audio->sh) { sh_audio_t *sh = reinterpret_cast<sh_audio_t*>(demuxer->a_streams[demuxer->audio->id]); int aid = *(int*)arg; - if (aid < 0) aid = (sh->aid + 1) % mkv_d->last_aid; - if (aid != sh->aid) { + if (aid < 0) aid = (sh->id + 1) % mkv_d->last_aid; + if (aid != sh->id) { mkv_track_t *track = demux_mkv_find_track_by_num (mkv_d, aid, MATROSKA_TRACK_AUDIO); if (track) { demuxer->audio->id = track->tnum; @@ -4010,7 +4010,7 @@ ds_free_packs(demuxer->audio); } } - *(int*)arg = sh->aid; + *(int*)arg = sh->id; } else *(int*)arg = -2; return MPXP_Ok; default: return MPXP_Unknown; Modified: mplayerxp/libmpdemux/demuxer.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer.cpp 2012-11-30 07:29:04 UTC (rev 489) +++ mplayerxp/libmpdemux/demuxer.cpp 2012-11-30 08:43:33 UTC (rev 490) @@ -192,7 +192,7 @@ sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/ MSG_V("ID_AUDIO_ID=%d\n", aid); } - ((sh_audio_t *)demuxer->a_streams[id])->aid = aid; + ((sh_audio_t *)demuxer->a_streams[id])->id = aid; check_pin("demuxer",demuxer->pin,DEMUX_PIN); return reinterpret_cast<sh_audio_t*>(demuxer->a_streams[id]); } @@ -227,7 +227,7 @@ demuxer->v_streams[id]=mp_calloc(1, sizeof(sh_video_t)); MSG_V("ID_VIDEO_ID=%d\n", vid); } - ((sh_video_t *)demuxer->v_streams[id])->vid = vid; + ((sh_video_t *)demuxer->v_streams[id])->id = vid; check_pin("demuxer",demuxer->pin,DEMUX_PIN); return reinterpret_cast<sh_video_t*>(demuxer->v_streams[id]); } Modified: mplayerxp/libmpdemux/stheader.h =================================================================== --- mplayerxp/libmpdemux/stheader.h 2012-11-30 07:29:04 UTC (rev 489) +++ mplayerxp/libmpdemux/stheader.h 2012-11-30 08:43:33 UTC (rev 490) @@ -13,12 +13,23 @@ #endif #include "xmpcore/mp_image.h" -struct af_stream_t; -typedef struct sh_audio_s { - int aid; +struct standard_header : public Opaque { + public: + standard_header() {} + virtual ~standard_header() {} + + int id; demux_stream_t* ds; struct codecs_st* codec; int inited; +}; + +struct af_stream_t; +struct sh_audio_t : public standard_header { + public: + sh_audio_t() {} + virtual ~sh_audio_t() {} + // input format uint32_t wtag; // analogue of fourcc for sound unsigned i_bps; // == bitrate (compressed bytes/sec) @@ -60,13 +71,14 @@ any_t* context; // codec-specific stuff (usually HANDLE or struct pointer) unsigned char* codecdata; unsigned codecdata_len; -} sh_audio_t; +}; + struct vf_instance_t; -typedef struct sh_video_s { - int vid; - demux_stream_t* ds; - struct codecs_st* codec; - int inited; +struct sh_video_t : public standard_header { + public: + sh_video_t() {} + virtual ~sh_video_t() {} + // input format uint32_t fourcc; int is_static; /* default: 0 - means movie; 1 - means picture (.jpg ...)*/ @@ -92,7 +104,7 @@ BITMAPINFOHEADER* bih; // in format any_t* context; // codec-specific stuff (usually HANDLE or struct pointer) any_t* ImageDesc; // for quicktime codecs -} sh_video_t; +}; sh_audio_t* get_sh_audio(demuxer_t *demuxer,int id); sh_video_t* get_sh_video(demuxer_t *demuxer,int id); Modified: mplayerxp/mplayerxp.h =================================================================== --- mplayerxp/mplayerxp.h 2012-11-30 07:29:04 UTC (rev 489) +++ mplayerxp/mplayerxp.h 2012-11-30 08:43:33 UTC (rev 490) @@ -127,9 +127,9 @@ struct MPXPSystem; /* non-configurable through command line stuff */ - struct MPXPContext { + struct MPXPContext :public Opaque { MPXPContext(); - ~MPXPContext() {} + virtual ~MPXPContext() {} int rtc_fd; int seek_time; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |