[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[481] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2012-11-29 07:05:24
|
Revision: 481 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=481&view=rev Author: nickols_k Date: 2012-11-29 07:05:15 +0000 (Thu, 29 Nov 2012) Log Message: ----------- namespace + constantization + new logic for Demuxer_Packet 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_bmp.cpp mplayerxp/libmpdemux/demux_dv.cpp mplayerxp/libmpdemux/demux_film.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_ogg.cpp mplayerxp/libmpdemux/demux_pva.cpp mplayerxp/libmpdemux/demux_rawaudio.cpp mplayerxp/libmpdemux/demux_real.cpp mplayerxp/libmpdemux/demux_realaud.cpp mplayerxp/libmpdemux/demux_ts.cpp mplayerxp/libmpdemux/demux_ty.cpp mplayerxp/libmpdemux/demux_viv.cpp mplayerxp/libmpdemux/demux_vqf.cpp mplayerxp/libmpdemux/demux_y4m.cpp mplayerxp/libmpdemux/demuxer.cpp mplayerxp/libmpdemux/demuxer.h mplayerxp/libmpdemux/demuxer_packet.cpp mplayerxp/libmpdemux/demuxer_packet.h mplayerxp/libmpstream/s_tv.cpp mplayerxp/libvo/aspect.cpp mplayerxp/libvo/aspect.h mplayerxp/libvo/osd_render.cpp mplayerxp/libvo/osd_render.h mplayerxp/libvo/video_out.cpp mplayerxp/postproc/libmenu/menu.cpp Modified: mplayerxp/libmpdemux/demux_aiff.cpp =================================================================== --- mplayerxp/libmpdemux/demux_aiff.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_aiff.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -197,7 +197,7 @@ dp->pos = spos; dp->flags = DP_NONKEYFRAME; - l=stream_read(demuxer->stream,dp->buffer,l); + l=stream_read(demuxer->stream,dp->buffer(),l); dp->resize(l); ds_add_packet(ds,dp); Modified: mplayerxp/libmpdemux/demux_asf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_asf.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_asf.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -455,18 +455,17 @@ // closed segment, finalize packet: if(ds==demux->audio) if(apriv->asf_scrambling_h>1 && apriv->asf_scrambling_w>1) - asf_descrambling(apriv,ds->asf_packet->buffer,ds->asf_packet->len); + asf_descrambling(apriv,ds->asf_packet->buffer(),ds->asf_packet->length()); ds_add_packet(ds,ds->asf_packet); ds->asf_packet=NULL; } else { // append data to it! Demuxer_Packet* dp=ds->asf_packet; - if(dp->len!=offs && offs!=-1) MSG_V("warning! fragment.len=%d BUT next fragment offset=%d \n",dp->len,offs); - dp->resize(dp->len+len); + if(dp->length()!=unsigned(offs) && offs!=-1) MSG_V("warning! fragment.len=%d BUT next fragment offset=%d \n",dp->length(),offs); + dp->resize(dp->length()+len); stream_seek(demux->stream,dataoff); - stream_read(demux->stream,dp->buffer+dp->len,len); - MSG_DBG3("data appended! %d+%d\n",dp->len,len); - dp->len+=len; + stream_read(demux->stream,dp->buffer()+dp->length(),len); + MSG_DBG3("data appended! %d+%d\n",dp->length(),len); // we are ready now. return 1; } @@ -477,16 +476,16 @@ MSG_V("warning! broken fragment or incomplete seeking, %d bytes missing \n",offs); return 0; } - Demuxer_Packet& dp=*new(zeromem) Demuxer_Packet(len); + Demuxer_Packet* dp=new(zeromem) Demuxer_Packet(len); stream_seek(demux->stream,dataoff); - len=stream_read(demux->stream,dp.buffer,len); - dp.resize(len); - dp.pts=time*0.001f; - dp.flags=keyframe?DP_KEYFRAME:DP_NONKEYFRAME; - dp.pos=demux->filepos; - ds->asf_packet=&dp; + len=stream_read(demux->stream,dp->buffer(),len); + dp->resize(len); + dp->pts=time*0.001f; + dp->flags=keyframe?DP_KEYFRAME:DP_NONKEYFRAME; + dp->pos=demux->filepos; + ds->asf_packet=dp; ds->asf_seq=seq; - MSG_DBG2("ASF: reading %s PTS %u %f %i\n",ds==demux->audio?"audio":"video",time,dp.pts,keyframe); + MSG_DBG2("ASF: reading %s PTS %u %f %i\n",ds==demux->audio?"audio":"video",time,dp->pts,keyframe); // we are ready now. return 1; } Modified: mplayerxp/libmpdemux/demux_audio.cpp =================================================================== --- mplayerxp/libmpdemux/demux_audio.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_audio.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -1448,9 +1448,9 @@ if(len>4) { Demuxer_Packet* dp = new(zeromem) Demuxer_Packet(len); - memcpy(dp->buffer,hdr,4); - len=stream_read(s,dp->buffer + 4,len-4); + memcpy(dp->buffer(),hdr,4); dp->resize(len+4); + len=stream_read(s,dp->buffer() + 4,len-4); priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + len/(float)sh_audio->i_bps; dp->pts = priv->last_pts - (ds_tell_pts(demux->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; dp->flags=DP_NONKEYFRAME; @@ -1477,9 +1477,9 @@ if(len>8) { Demuxer_Packet* dp = new(zeromem) Demuxer_Packet(len); - memcpy(dp->buffer,hdr,8); - len=stream_read(s,dp->buffer+8,len-8); + memcpy(dp->buffer(),hdr,8); dp->resize(len+8); + len=stream_read(s,dp->buffer()+8,len-8); priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + len/(float)sh_audio->i_bps; dp->pts = priv->last_pts - (ds_tell_pts(demux->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; dp->flags=DP_NONKEYFRAME; @@ -1506,9 +1506,9 @@ if(len>16) { Demuxer_Packet* dp = new(zeromem) Demuxer_Packet(len); - memcpy(dp->buffer,hdr,16); - len=stream_read(s,dp->buffer+16,len-16); dp->resize(len+16); + memcpy(dp->buffer(),hdr,16); + len=stream_read(s,dp->buffer()+16,len-16); priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + len/(float)sh_audio->i_bps; dp->pts = priv->last_pts - (ds_tell_pts(demux->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; dp->flags=DP_NONKEYFRAME; @@ -1523,7 +1523,7 @@ case RAW_WAV : { int l = sh_audio->wf->nAvgBytesPerSec; Demuxer_Packet* dp =new(zeromem) Demuxer_Packet(l); - l=stream_read(s,dp->buffer,l); + l=stream_read(s,dp->buffer(),l); dp->resize(l); priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + l/(float)sh_audio->i_bps; dp->pts = priv->last_pts - (ds_tell_pts(demux->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; @@ -1534,7 +1534,7 @@ case RAW_VOC : { int l = 65536; Demuxer_Packet* dp =new(zeromem) Demuxer_Packet(l); - l=stream_read(s,dp->buffer,l); + l=stream_read(s,dp->buffer(),l); dp->resize(l); priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + l/(float)sh_audio->i_bps; dp->pts = priv->last_pts - (ds_tell_pts(demux->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; @@ -1553,10 +1553,10 @@ bit_len = mpc_get_bits(priv, s, 20); Demuxer_Packet* dp=new(zeromem) Demuxer_Packet((bit_len + 7) / 8); for (l = 0; l < (bit_len / 8); l++) - dp->buffer[l] = mpc_get_bits(priv, s, 8); + dp->buffer()[l] = mpc_get_bits(priv, s, 8); bit_len %= 8; if (bit_len) - dp->buffer[l] = mpc_get_bits(priv, s, bit_len) << (8 - bit_len); + dp->buffer()[l] = mpc_get_bits(priv, s, bit_len) << (8 - bit_len); if (priv->last_pts < 0) priv->last_pts = 0; else Modified: mplayerxp/libmpdemux/demux_avi.cpp =================================================================== --- mplayerxp/libmpdemux/demux_avi.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_avi.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -840,7 +840,7 @@ return (len1<len2)? len1 : len2; } -static int demux_avi_read_packet(demuxer_t *demux,demux_stream_t *ds,unsigned int id,unsigned int len,int idxpos,int flags){ +static int demux_avi_read_packet(demuxer_t *demux,demux_stream_t *ds,unsigned int id,unsigned int len,int idxpos,dp_flags_e flags){ avi_priv_t *priv=static_cast<avi_priv_t*>(demux->priv); int skip; float pts=0; @@ -915,7 +915,7 @@ demux_stream_t *ds; do{ - int flags=DP_KEYFRAME; + dp_flags_e flags=DP_KEYFRAME; AVIINDEXENTRY *idx=NULL; if(priv->idx_size>0 && priv->idx_pos<priv->idx_size){ off_t pos; @@ -1015,7 +1015,7 @@ int ret=0; do{ - int flags=DP_KEYFRAME; + dp_flags_e flags=DP_KEYFRAME; AVIINDEXENTRY *idx=NULL; int idx_pos=0; demux->filepos=stream_tell(demux->stream); Modified: mplayerxp/libmpdemux/demux_bmp.cpp =================================================================== --- mplayerxp/libmpdemux/demux_bmp.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_bmp.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -103,7 +103,7 @@ npal_colors = img->format->palette ? img->format->palette->ncolors : 0; fake_24 = img->format->BitsPerPixel == 8 && npal_colors > 0; Demuxer_Packet* dp = new(zeromem) Demuxer_Packet(fake_24 ? len*3 : len); - dst = dp->buffer; + dst = dp->buffer(); src =reinterpret_cast<uint8_t*>(img->pixels); if(fake_24) { Modified: mplayerxp/libmpdemux/demux_dv.cpp =================================================================== --- mplayerxp/libmpdemux/demux_dv.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_dv.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -115,12 +115,12 @@ stream_seek(demuxer->stream, frames->current_filepos); Demuxer_Packet* dp_video=new(zeromem) Demuxer_Packet(frames->frame_size); - bytes_read=stream_read(demuxer->stream,dp_video->buffer,frames->frame_size); + bytes_read=stream_read(demuxer->stream,dp_video->buffer(),frames->frame_size); if (bytes_read<frames->frame_size) return 0; dp_video->pts=frames->current_frame/sh_video->fps; dp_video->pos=frames->current_filepos; - dp_video->flags=0; + dp_video->flags=DP_NONKEYFRAME; if (demuxer->audio && demuxer->audio->id>=-1) { Modified: mplayerxp/libmpdemux/demux_film.cpp =================================================================== --- mplayerxp/libmpdemux/demux_film.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_film.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -119,7 +119,7 @@ { if(demuxer->audio->id>=-1){ // audio not disabled dp = new(zeromem) Demuxer_Packet(film_chunk.chunk_size); - if (stream_read(demuxer->stream, dp->buffer, film_chunk.chunk_size) != + if (stream_read(demuxer->stream, dp->buffer(), film_chunk.chunk_size) != film_chunk.chunk_size) return 0; dp->pts = film_chunk.pts; dp->pos = film_chunk.chunk_offset; @@ -130,13 +130,13 @@ // 16-bit: big-endian -> little-endian if (sh_audio->wf->wBitsPerSample == 8) for (i = 0; i < film_chunk.chunk_size; i++) - dp->buffer[i] += 128; + dp->buffer()[i] += 128; else for (i = 0; i < film_chunk.chunk_size; i += 2) { - byte_swap = dp->buffer[i]; - dp->buffer[i] = dp->buffer[i + 1]; - dp->buffer[i + 1] = byte_swap; + byte_swap = dp->buffer()[i]; + dp->buffer()[i] = dp->buffer()[i + 1]; + dp->buffer()[i + 1] = byte_swap; } // append packet to DS stream @@ -157,24 +157,24 @@ dp = new(zeromem) Demuxer_Packet(film_chunk.chunk_size - length_fix_bytes); // these CVID data chunks have a few extra bytes; skip them - if (stream_read(demuxer->stream, dp->buffer, 10) != 10) + if (stream_read(demuxer->stream, dp->buffer(), 10) != 10) return 0; stream_skip(demuxer->stream, length_fix_bytes); - if (stream_read(demuxer->stream, dp->buffer + 10, + if (stream_read(demuxer->stream, dp->buffer() + 10, film_chunk.chunk_size - (10 + length_fix_bytes)) != (film_chunk.chunk_size - (10 + length_fix_bytes))) return 0; dp->pts = film_chunk.pts; dp->pos = film_chunk.chunk_offset; - dp->flags = (film_chunk.syncinfo1 & 0x80000000) ? 1 : 0; + dp->flags = (film_chunk.syncinfo1 & 0x80000000) ? DP_KEYFRAME : DP_NONKEYFRAME; // fix the CVID chunk size cvid_size = film_chunk.chunk_size - length_fix_bytes; - dp->buffer[1] = (cvid_size >> 16) & 0xFF; - dp->buffer[2] = (cvid_size >> 8) & 0xFF; - dp->buffer[3] = (cvid_size >> 0) & 0xFF; + dp->buffer()[1] = (cvid_size >> 16) & 0xFF; + dp->buffer()[2] = (cvid_size >> 8) & 0xFF; + dp->buffer()[3] = (cvid_size >> 0) & 0xFF; // append packet to DS stream ds_add_packet(demuxer->video, dp); Modified: mplayerxp/libmpdemux/demux_lavf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_lavf.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_lavf.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -454,7 +454,7 @@ } dp=new(zeromem) Demuxer_Packet(pkt.size); - memcpy(dp->buffer, pkt.data, pkt.size); + memcpy(dp->buffer(), pkt.data, pkt.size); av_free_packet(&pkt); if(pkt.pts != AV_NOPTS_VALUE){ Modified: mplayerxp/libmpdemux/demux_mkv.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mkv.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_mkv.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -2640,15 +2640,15 @@ ptr[2] != 'a' || ptr[3] != 'C') { dp = new(zeromem) Demuxer_Packet (4); - memcpy (dp->buffer, "fLaC", 4); + memcpy (dp->buffer(), "fLaC", 4); } else { dp = new(zeromem) Demuxer_Packet (size); - memcpy (dp->buffer, ptr, size); + memcpy (dp->buffer(), ptr, size); } dp->pts = 0; - dp->flags = 0; + dp->flags = DP_NONKEYFRAME; ds_add_packet (demuxer->audio, dp); } else if (track->a_formattag == mmioFOURCC('W', 'V', 'P', 'K')) @@ -3202,7 +3202,7 @@ sub_data.utf8 = 1; size -= ptr1 - block; dp = new(zeromem) Demuxer_Packet(size); - memcpy(dp->buffer, ptr1, size); + memcpy(dp->buffer(), ptr1, size); dp->pts = timecode / 1000.0f; #if 0 dp->endpts = (timecode + block_duration) / 1000.0f; @@ -3284,9 +3284,9 @@ chunks = *buffer++; isize = --size - (chunks+1)*8; dp = new(zeromem) Demuxer_Packet (REALHEADER_SIZE + size); - memcpy (dp->buffer + REALHEADER_SIZE, buffer + (chunks+1)*8, isize); + memcpy (dp->buffer() + REALHEADER_SIZE, buffer + (chunks+1)*8, isize); #ifdef WORDS_BIGENDIAN - p = (uint8_t *)(dp->buffer + REALHEADER_SIZE + isize); + p = (uint8_t *)(dp->buffer() + REALHEADER_SIZE + isize); for (i = 0; i<(chunks+1)*8; i+=4) { p[i] = *((uint8_t *)buffer+i+3); p[i+1] = *((uint8_t *)buffer+i+2); @@ -3294,10 +3294,10 @@ p[i+3] = *((uint8_t *)buffer+i); } #else - memcpy (dp->buffer + REALHEADER_SIZE + isize, buffer, (chunks+1)*8); + memcpy (dp->buffer() + REALHEADER_SIZE + isize, buffer, (chunks+1)*8); #endif - hdr = (uint32_t *)dp->buffer; + hdr = reinterpret_cast<uint32_t*>(dp->buffer()); *hdr++ = chunks; // number of chunks *hdr++ = timestamp; // timestamp from packet header *hdr++ = isize; // length of actual data @@ -3310,10 +3310,10 @@ track->rv_kf_pts = timestamp; } else - dp->pts = real_fix_timestamp (track, dp->buffer + REALHEADER_SIZE, + dp->pts = real_fix_timestamp (track, dp->buffer() + REALHEADER_SIZE, timestamp); dp->pos = demuxer->filepos; - dp->flags = block_bref ? 0 : 0x10; + dp->flags = block_bref ? DP_NONKEYFRAME : DP_KEYFRAME; ds_add_packet(demuxer->video, dp); } @@ -3391,17 +3391,17 @@ for (x = 0; x < sph*w/apk_usize; x++) { dp = new(zeromem) Demuxer_Packet(apk_usize); - memcpy(dp->buffer, track->audio_buf + x * apk_usize, apk_usize); + memcpy(dp->buffer(), track->audio_buf + x * apk_usize, apk_usize); /* Put timestamp only on packets that correspond to original audio packets in file */ dp->pts = (x * apk_usize % w) ? 0 : track->audio_timestamp[x * apk_usize / w]; dp->pos = track->audio_filepos; // all equal - dp->flags = x ? 0 : 0x10; // Mark first packet as keyframe + dp->flags = x ? DP_NONKEYFRAME : DP_KEYFRAME; // Mark first packet as keyframe ds_add_packet(demuxer->audio, dp); } } } else { // Not a codec that require reordering dp = new(zeromem) Demuxer_Packet (size); - memcpy(dp->buffer, buffer, size); + memcpy(dp->buffer(), buffer, size); if (track->ra_pts == mkv_d->last_pts && !mkv_d->a_skip_to_keyframe) dp->pts = 0; else @@ -3409,7 +3409,7 @@ track->ra_pts = mkv_d->last_pts; dp->pos = demuxer->filepos; - dp->flags = block_bref ? 0 : 0x10; + dp->flags = block_bref ? DP_NONKEYFRAME : DP_KEYFRAME; ds_add_packet (demuxer->audio, dp); } } @@ -3484,7 +3484,7 @@ Demuxer_Packet *dp; dp = new(zeromem) Demuxer_Packet (size); - memcpy(dp->buffer, buffer, size); + memcpy(dp->buffer(), buffer, size); dp->pos = demuxer->filepos; dp->pts = mkv_d->last_pts; if ((track->num_cached_dps > 0) && (dp->pts < track->max_pts)) @@ -3492,7 +3492,7 @@ if (block_fref == 0) /* I or P frame */ flush_cached_dps (demuxer, track); if (block_bref != 0) /* I frame, don't cache it */ - dp->flags = 0x10; + dp->flags = DP_KEYFRAME; if ((track->num_cached_dps + 1) > track->num_allocated_dps) { track->cached_dps = (Demuxer_Packet **) @@ -3641,10 +3641,10 @@ modified = demux_mkv_decode (track, block, &buffer, &size, 1); if (buffer) { dp = new(zeromem) Demuxer_Packet (size); - memcpy (dp->buffer, buffer, size); + memcpy (dp->buffer(), buffer, size); if (modified) delete buffer; - dp->flags = (block_bref == 0 && block_fref == 0) ? 0x10 : 0; + dp->flags = (block_bref == 0 && block_fref == 0) ? DP_KEYFRAME : DP_NONKEYFRAME; /* If default_duration is 0, assume no pts value is known * for packets after the first one (rather than all pts * values being the same) */ Modified: mplayerxp/libmpdemux/demux_mov.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mov.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_mov.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -2007,10 +2007,10 @@ if(trak->pos==0 && trak->stream_header_len>0){ // we have to append the stream header... Demuxer_Packet* dp=new(zeromem) Demuxer_Packet(x+trak->stream_header_len); - memcpy(dp->buffer,trak->stream_header,trak->stream_header_len); + memcpy(dp->buffer(),trak->stream_header,trak->stream_header_len); dp->pos=stream_tell(demuxer->stream)-trak->stream_header_len; - x=stream_read(demuxer->stream,dp->buffer+trak->stream_header_len,x); dp->resize(x+trak->stream_header_len); + x=stream_read(demuxer->stream,dp->buffer()+trak->stream_header_len,x); delete trak->stream_header; trak->stream_header = NULL; trak->stream_header_len = 0; Modified: mplayerxp/libmpdemux/demux_mpg.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mpg.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_mpg.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -401,20 +401,20 @@ if(pts==MPGPES_BAD_PTS && ds->asf_packet) { Demuxer_Packet* dp=ds->asf_packet; - dp->resize(dp->len+len); - stream_read(demux->stream,dp->buffer+dp->len,len); + dp->resize(dp->length()+len); + stream_read(demux->stream,dp->buffer()+dp->length(),len); } else { sh_video_t *sh; if(ds->asf_packet) ds_add_packet(ds,ds->asf_packet); Demuxer_Packet* dp=new(zeromem) Demuxer_Packet(len); - len=stream_read(demux->stream,dp->buffer,len); + len=stream_read(demux->stream,dp->buffer(),len); dp->resize(len); dp->pts=pts/90000.0f; if(ds==demux->video) sh=(sh_video_t *)ds->sh; else sh=NULL; - dp->flags=sh?is_mpg_keyframe(sh->fourcc,id,dp->buffer):DP_NONKEYFRAME; + dp->flags=sh?is_mpg_keyframe(sh->fourcc,id,dp->buffer())?DP_KEYFRAME:DP_NONKEYFRAME:DP_NONKEYFRAME; dp->pos=demux->filepos; ds->asf_packet=dp; if (ds==ds->demuxer->sub) { Modified: mplayerxp/libmpdemux/demux_mpxp64.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mpxp64.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_mpxp64.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -46,7 +46,7 @@ uint64_t prev_size[MAX_AV_STREAMS]; uint32_t prev_id; // index stuff: - any_t* idx[MAX_AV_STREAMS]; + uint64_t* idx[MAX_AV_STREAMS]; unsigned idx_size[MAX_AV_STREAMS]; }; @@ -157,9 +157,9 @@ { is_valid=1; priv->idx_size[id]=iid>>2; /* 32-bit in file */ - priv->idx[id]=mp_malloc(priv->idx_size[id]<<3); /* 64-bit in memory */ + priv->idx[id]=new uint64_t [priv->idx_size[id]]; /* 64-bit in memory */ for(i=0;i<priv->idx_size[id];i++) - ((uint64_t *)priv->idx[id])[i]=stream_read_dword_le(s); + priv->idx[id][i]=stream_read_dword_le(s); } else MSG_ERR("Index offset doesn't match to stream %u != %u\n",sid,id); } @@ -172,9 +172,9 @@ { is_valid=1; priv->idx_size[id]=iid>>3; - priv->idx[id]=mp_malloc(priv->idx_size[id]<<3); + priv->idx[id]=new uint64_t [priv->idx_size[id]]; for(i=0;i<priv->idx_size[id];i++) - ((uint64_t *)priv->idx[id])[i]=stream_read_qword_le(s); + priv->idx[id][i]=stream_read_qword_le(s); } else MSG_ERR("Index offset doesn't match to stream %u != %u\n",sid,id); } @@ -559,7 +559,7 @@ off_t pos=0LL; Demuxer_Packet* dp=new(zeromem) Demuxer_Packet(len); if(mp_conf.verbose>1) pos=stream_tell(s); - len=stream_read(s,dp->buffer,len); + len=stream_read(s,dp->buffer(),len); dp->resize(len); dp->pts=pts; dp->flags=keyframe?DP_KEYFRAME:DP_NONKEYFRAME; @@ -798,9 +798,9 @@ { for(i=0;i<n;i++) { - if(newpos<=((uint64_t*)priv->idx[demuxer->video->id])[i]) + if(newpos<=priv->idx[demuxer->video->id][i]) { - newpos=((uint64_t*)priv->idx[demuxer->video->id])[i]; + newpos=priv->idx[demuxer->video->id][i]; break; } } @@ -809,9 +809,9 @@ { for(i=n-1;i;i--) { - if(newpos>=((uint64_t*)priv->idx[demuxer->video->id])[i]) + if(newpos>=priv->idx[demuxer->video->id][i]) { - newpos=((uint64_t*)priv->idx[demuxer->video->id])[i]; + newpos=priv->idx[demuxer->video->id][i]; break; } } Modified: mplayerxp/libmpdemux/demux_ogg.cpp =================================================================== --- mplayerxp/libmpdemux/demux_ogg.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_ogg.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -586,12 +586,12 @@ } /// Send the packet dp = new(zeromem) Demuxer_Packet(pack->bytes-(data-pack->packet)); - memcpy(dp->buffer,data,pack->bytes-(data-pack->packet)); + memcpy(dp->buffer(),data,pack->bytes-(data-pack->packet)); dp->pts = pts; dp->flags = flags?DP_KEYFRAME:DP_NONKEYFRAME; ds_add_packet(ds,dp); MSG_DBG2("New dp: %p ds=%p pts=%5.3f len=%d flag=%d \n", - dp, ds, pts, dp->len, flags); + dp, ds, pts, dp->length(), flags); return 1; } @@ -1245,15 +1245,15 @@ /// Add the header packets in the ogg demuxer audio stream // Initial header dp = new(zeromem) Demuxer_Packet(hdrsizes[0]); - memcpy(dp->buffer,((unsigned char*)sh_audio->wf)+22+sizeof(WAVEFORMATEX)+3*sizeof(uint32_t),hdrsizes[0]); + memcpy(dp->buffer(),((unsigned char*)sh_audio->wf)+22+sizeof(WAVEFORMATEX)+3*sizeof(uint32_t),hdrsizes[0]); ds_add_packet(od->audio,dp); /// Comments dp = new(zeromem) Demuxer_Packet(hdrsizes[1]); - memcpy(dp->buffer,((unsigned char*)sh_audio->wf)+22+sizeof(WAVEFORMATEX)+3*sizeof(uint32_t)+hdrsizes[0],hdrsizes[1]); + memcpy(dp->buffer(),((unsigned char*)sh_audio->wf)+22+sizeof(WAVEFORMATEX)+3*sizeof(uint32_t)+hdrsizes[0],hdrsizes[1]); ds_add_packet(od->audio,dp); /// Code book dp = new(zeromem) Demuxer_Packet(hdrsizes[2]); - memcpy(dp->buffer,((unsigned char*)sh_audio->wf)+22+sizeof(WAVEFORMATEX)+3*sizeof(uint32_t)+hdrsizes[0]+hdrsizes[1],hdrsizes[2]); + memcpy(dp->buffer(),((unsigned char*)sh_audio->wf)+22+sizeof(WAVEFORMATEX)+3*sizeof(uint32_t)+hdrsizes[0]+hdrsizes[1],hdrsizes[2]); ds_add_packet(od->audio,dp); // Finish setting up the ogg demuxer Modified: mplayerxp/libmpdemux/demux_pva.cpp =================================================================== --- mplayerxp/libmpdemux/demux_pva.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_pva.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -228,7 +228,7 @@ dp=new(zeromem) Demuxer_Packet(current_payload.size); dp->pts=priv->last_video_pts; dp->flags=DP_NONKEYFRAME; - l=stream_read(demux->stream,dp->buffer,current_payload.size); + l=stream_read(demux->stream,dp->buffer(),current_payload.size); dp->resize(l); ds_add_packet(demux->video,dp); } else { @@ -258,7 +258,7 @@ dp->pts=priv->last_audio_pts; if(current_payload.offset != stream_tell(demux->stream)) stream_seek(demux->stream,current_payload.offset); - l=stream_read(demux->stream,dp->buffer,current_payload.size); + l=stream_read(demux->stream,dp->buffer(),current_payload.size); dp->resize(l); ds_add_packet(demux->audio,dp); } else { Modified: mplayerxp/libmpdemux/demux_rawaudio.cpp =================================================================== --- mplayerxp/libmpdemux/demux_rawaudio.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_rawaudio.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -88,7 +88,7 @@ dp->pos = spos; dp->flags=DP_NONKEYFRAME; - l=stream_read(demuxer->stream,dp->buffer,l); + l=stream_read(demuxer->stream,dp->buffer(),l); dp->resize(l); ds_add_packet(ds,dp); Modified: mplayerxp/libmpdemux/demux_real.cpp =================================================================== --- mplayerxp/libmpdemux/demux_real.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_real.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -516,7 +516,7 @@ for (i = 0; i < sub_packets; i++) { int l; Demuxer_Packet *dp = new(zeromem) Demuxer_Packet(sub_packet_lengths[i]); - l=stream_read(demuxer->stream, dp->buffer, sub_packet_lengths[i]); + l=stream_read(demuxer->stream, dp->buffer(), sub_packet_lengths[i]); dp->resize(l); dp->pts = pts; priv->a_pts = pts; @@ -528,7 +528,7 @@ return 1; } dp = new(zeromem) Demuxer_Packet(len); - len=stream_read(demuxer->stream, dp->buffer, len); + len=stream_read(demuxer->stream, dp->buffer(), len); dp->resize(len); if (priv->audio_need_keyframe == 1) { dp->pts = 0; @@ -537,7 +537,7 @@ dp->pts = pts; priv->a_pts=pts; dp->pos = demuxer->filepos; - dp->flags = (flags & 0x2) ? 0x10 : 0; + dp->flags = (flags & 0x2) ? DP_KEYFRAME : DP_NONKEYFRAME; ds_add_packet(ds, dp); } // we will not use audio index if we use -idx and have a video @@ -640,14 +640,14 @@ if(ds->asf_packet){ dp=ds->asf_packet; - dp_hdr=(dp_hdr_t*)dp->buffer; - dp_data=dp->buffer+sizeof(dp_hdr_t); - extra=(uint32_t*)(dp->buffer+dp_hdr->chunktab); + dp_hdr=(dp_hdr_t*)dp->buffer(); + dp_data=dp->buffer()+sizeof(dp_hdr_t); + extra=(uint32_t*)(dp->buffer()+dp_hdr->chunktab); MSG_DBG2("we have an incomplete packet (oldseq=%d new=%d)\n",ds->asf_seq,vpkg_seqnum); // we have an incomplete packet: if(ds->asf_seq!=vpkg_seqnum){ // this fragment is for new packet, close the old one - MSG_DBG2("closing probably incomplete packet, len: %d \n",dp->len); + MSG_DBG2("closing probably incomplete packet, len: %d \n",dp->length()); if(priv->video_after_seek){ dp->pts=timestamp; priv->kf_base = 0; @@ -662,22 +662,21 @@ // append data to it! ++dp_hdr->chunks; MSG_DBG2("[chunks=%d subseq=%d]\n",dp_hdr->chunks,vpkg_subseq); - if(dp_hdr->chunktab+8*(1+dp_hdr->chunks)>dp->len){ + if(dp_hdr->chunktab+8*(1+dp_hdr->chunks)>dp->length()){ // increase buffer size, this should not happen! MSG_WARN("chunktab buffer too small!!!!!\n"); - dp->len=dp_hdr->chunktab+8*(4+dp_hdr->chunks); - dp->resize(dp->len); + dp->resize(dp_hdr->chunktab+8*(4+dp_hdr->chunks)); // re-calc pointers: - dp_hdr=(dp_hdr_t*)dp->buffer; - dp_data=dp->buffer+sizeof(dp_hdr_t); - extra=(uint32_t*)(dp->buffer+dp_hdr->chunktab); + dp_hdr=(dp_hdr_t*)dp->buffer(); + dp_data=dp->buffer()+sizeof(dp_hdr_t); + extra=(uint32_t*)(dp->buffer()+dp_hdr->chunktab); } extra[2*dp_hdr->chunks+0]=1; extra[2*dp_hdr->chunks+1]=dp_hdr->len; if(0x80==(vpkg_header&0xc0)){ // last fragment! if(dp_hdr->len!=vpkg_length-vpkg_offset) - MSG_V("warning! assembled.len=%d frag.len=%d total.len=%d \n",dp->len,vpkg_offset,vpkg_length-vpkg_offset); + MSG_V("warning! assembled.len=%d frag.len=%d total.len=%d \n",dp->length(),vpkg_offset,vpkg_length-vpkg_offset); stream_read(demuxer->stream, dp_data+dp_hdr->len, vpkg_offset); if((dp_data[dp_hdr->len]&0x20) && (sh_video->fourcc==0x30335652)) --dp_hdr->chunks; else dp_hdr->len+=vpkg_offset; @@ -699,7 +698,7 @@ } // non-last fragment: if(dp_hdr->len!=vpkg_offset) - MSG_V("warning! assembled.len=%d offset=%d frag.len=%d total.len=%d \n",dp->len,vpkg_offset,len,vpkg_length); + MSG_V("warning! assembled.len=%d offset=%d frag.len=%d total.len=%d \n",dp->length(),vpkg_offset,len,vpkg_length); stream_read(demuxer->stream, dp_data+dp_hdr->len, len); if((dp_data[dp_hdr->len]&0x20) && (sh_video->fourcc==0x30335652)) --dp_hdr->chunks; else dp_hdr->len+=len; @@ -714,12 +713,12 @@ dp->pos = demuxer->filepos; dp->flags = (flags & 0x2) ? DP_KEYFRAME : DP_NONKEYFRAME; ds->asf_seq = vpkg_seqnum; - dp_hdr=(dp_hdr_t*)dp->buffer; + dp_hdr=(dp_hdr_t*)dp->buffer(); dp_hdr->chunks=0; dp_hdr->timestamp=timestamp; dp_hdr->chunktab=sizeof(dp_hdr_t)+vpkg_length; - dp_data=dp->buffer+sizeof(dp_hdr_t); - extra=(uint32_t*)(dp->buffer+dp_hdr->chunktab); + dp_data=dp->buffer()+sizeof(dp_hdr_t); + extra=(uint32_t*)(dp->buffer()+dp_hdr->chunktab); extra[0]=1; extra[1]=0; // offset of the first chunk if(0x00==(vpkg_header&0xc0)){ // first fragment: Modified: mplayerxp/libmpdemux/demux_realaud.cpp =================================================================== --- mplayerxp/libmpdemux/demux_realaud.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_realaud.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -79,7 +79,7 @@ demuxer->filepos = stream_tell(demuxer->stream); Demuxer_Packet *dp = new(zeromem) Demuxer_Packet(len); - len=stream_read(demuxer->stream, dp->buffer, len); + len=stream_read(demuxer->stream, dp->buffer(), len); dp->resize(len); if(sh->i_bps) Modified: mplayerxp/libmpdemux/demux_ts.cpp =================================================================== --- mplayerxp/libmpdemux/demux_ts.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_ts.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -2843,7 +2843,7 @@ *buffer_size = *dp_offset + buf_size + TS_FEC_PACKET_SIZE; (*dp)->resize(*buffer_size); } - p = &((*dp)->buffer[*dp_offset]); + p = &((*dp)->buffer()[*dp_offset]); } len = stream_read(stream, p, buf_size); @@ -2945,7 +2945,7 @@ memmove(p, es->start, es->size); *dp_offset += es->size; - (*dp)->flags = 0; + (*dp)->flags = DP_NONKEYFRAME; (*dp)->pos = stream_tell(demuxer->stream); (*dp)->pts = es->pts; Modified: mplayerxp/libmpdemux/demux_ty.cpp =================================================================== --- mplayerxp/libmpdemux/demux_ty.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_ty.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -293,11 +293,11 @@ unsigned char *buffer, int size, off_t pos, int64_t pts ) { Demuxer_Packet *dp = new(zeromem) Demuxer_Packet( size ); - memcpy( dp->buffer, buffer, size ); + memcpy( dp->buffer(), buffer, size ); if (pts != -1) dp->pts = pts / 90000.0; dp->pos = pos; - dp->flags = 0; + dp->flags = DP_NONKEYFRAME; ds_add_packet( ds, dp ); } Modified: mplayerxp/libmpdemux/demux_viv.cpp =================================================================== --- mplayerxp/libmpdemux/demux_viv.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_viv.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -422,11 +422,10 @@ } else { // append data to it! Demuxer_Packet* dp=ds->asf_packet; - dp->resize(dp->len+len); + dp->resize(dp->length()+len); //memcpy(dp->buffer+dp->len,data,len); - stream_read(demux->stream,dp->buffer+dp->len,len); - MSG_DBG3("data appended! %d+%d\n",dp->len,len); - dp->len+=len; + stream_read(demux->stream,dp->buffer()+dp->length(),len); + MSG_DBG3("data appended! %d+%d\n",dp->length(),len); // we are ready now. if((c&0xF0)==0x20) --ds->asf_seq; // hack! return 1; @@ -435,7 +434,7 @@ // create new packet: Demuxer_Packet* dp=new(zeromem) Demuxer_Packet(len); //memcpy(dp->buffer,data,len); - len=stream_read(demux->stream,dp->buffer,len); + len=stream_read(demux->stream,dp->buffer(),len); dp->resize(len); dp->pts=audio_rate?((float)audio_pos/(float)audio_rate):0; dp->flags=DP_NONKEYFRAME; Modified: mplayerxp/libmpdemux/demux_vqf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_vqf.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_vqf.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -202,7 +202,7 @@ dp->pos = spos; dp->flags = DP_NONKEYFRAME; - l=stream_read(demuxer->stream,dp->buffer,l); + l=stream_read(demuxer->stream,dp->buffer(),l); dp->resize(l); ds_add_packet(ds,dp); Modified: mplayerxp/libmpdemux/demux_y4m.cpp =================================================================== --- mplayerxp/libmpdemux/demux_y4m.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demux_y4m.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -91,9 +91,9 @@ dp = new(zeromem) Demuxer_Packet(3*size/2); /* swap U and V components */ - buf[0] = dp->buffer; - buf[1] = dp->buffer + 5*size/4; - buf[2] = dp->buffer + size; + buf[0] = dp->buffer(); + buf[1] = dp->buffer() + 5*size/4; + buf[2] = dp->buffer() + size; if (priv->is_older) { Modified: mplayerxp/libmpdemux/demuxer.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demuxer.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -264,9 +264,9 @@ // dp->pts=pts; //(float)pts/90000.0f; // dp->pos=pos; // append packet to DS stream: - if(dp->len>0) { + if(dp->length()>0) { ++ds->packs; - ds->bytes+=dp->len; + ds->bytes+=dp->length(); if(ds->last) { // next packet in stream ds->last->next=dp; @@ -277,17 +277,17 @@ } MSG_DBG2("DEMUX: Append packet to %s, len=%d pts=%5.3f pos=%u [packs: A=%d V=%d]\n", (ds==ds->demuxer->audio)?"d_audio":"d_video", - dp->len,dp->pts,(unsigned int)dp->pos,ds->demuxer->audio->packs,ds->demuxer->video->packs); + dp->length(),dp->pts,(unsigned int)dp->pos,ds->demuxer->audio->packs,ds->demuxer->video->packs); } else MSG_DBG2("DEMUX: Skip packet for %s, len=%d pts=%5.3f pos=%u [packs: A=%d V=%d]\n", (ds==ds->demuxer->audio)?"d_audio":"d_video", - dp->len,dp->pts,(unsigned int)dp->pos,ds->demuxer->audio->packs,ds->demuxer->video->packs); + dp->length(),dp->pts,(unsigned int)dp->pos,ds->demuxer->audio->packs,ds->demuxer->video->packs); } -void ds_read_packet(demux_stream_t *ds,stream_t *stream,int len,float pts,off_t pos,int flags){ +void ds_read_packet(demux_stream_t *ds,stream_t *stream,int len,float pts,off_t pos,dp_flags_e flags){ Demuxer_Packet* dp=new(zeromem) Demuxer_Packet(len); - len=stream_read(stream,dp->buffer,len); + len=stream_read(stream,dp->buffer(),len); dp->resize(len); dp->pts=pts; //(float)pts/90000.0f; dp->pos=pos; @@ -326,20 +326,20 @@ if(ds->packs){ Demuxer_Packet *p=ds->first; // copy useful data: - ds->buffer=p->buffer; + ds->buffer=p->buffer(); ds->buffer_pos=0; - ds->buffer_size=p->len; + ds->buffer_size=p->length(); ds->pos=p->pos; - ds->dpos+=p->len; // !!! + ds->dpos+=p->length(); // !!! ++ds->pack_no; if(p->pts){ ds->pts=p->pts; ds->pts_bytes=0; } - ds->pts_bytes+=p->len; // !!! + ds->pts_bytes+=p->length(); // !!! ds->flags=p->flags; // mp_free packet: - ds->bytes-=p->len; + ds->bytes-=p->length(); ds->current=p; ds->first=p->next; if(!ds->first) ds->last=NULL; @@ -420,7 +420,7 @@ Demuxer_Packet *dn=dp->next; if(dp->pts >= pts) break; packs++; - bytes+=dp->len; + bytes+=dp->length(); delete dp; dp=dn; } Modified: mplayerxp/libmpdemux/demuxer.h =================================================================== --- mplayerxp/libmpdemux/demuxer.h 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demuxer.h 2012-11-29 07:05:15 UTC (rev 481) @@ -158,7 +158,7 @@ void free_demuxer(demuxer_t *demuxer); void ds_add_packet(demux_stream_t *ds,Demuxer_Packet* dp); -void ds_read_packet(demux_stream_t *ds,stream_t *stream,int len,float pts,off_t pos,int flags); +void ds_read_packet(demux_stream_t *ds,stream_t *stream,int len,float pts,off_t pos,dp_flags_e flags); int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds); int ds_fill_buffer(demux_stream_t *ds); Modified: mplayerxp/libmpdemux/demuxer_packet.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer_packet.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demuxer_packet.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -2,39 +2,42 @@ #include "osdep/fastmemcpy.h" #include <string.h> -Demuxer_Packet::Demuxer_Packet(unsigned _len) - :pts(0), +namespace mpxp { +Demuxer_Packet::Demuxer_Packet(unsigned len) + :type(Demuxer_Packet::Generic), + pts(0), pos(0), - flags(0), + flags(DP_NONKEYFRAME), + lang_id(0), next(NULL) { - len=_len; - buffer=new unsigned char [len]; + _len=len; + _buf=new uint8_t [_len]; } Demuxer_Packet::~Demuxer_Packet(){ - if(buffer) delete buffer; + if(_buf) delete _buf; } void Demuxer_Packet::resize(unsigned newlen) { - if(len!=newlen) { - if(newlen) buffer=(unsigned char *)mp_realloc(buffer,newlen); + if(_len!=newlen) { + if(newlen) _buf=(uint8_t *)mp_realloc(_buf,newlen); else { - if(buffer) delete buffer; - buffer=NULL; + if(_buf) delete _buf; + _buf=NULL; } - len=newlen; + _len=newlen; } } Demuxer_Packet* Demuxer_Packet::clone() const { - Demuxer_Packet* dp=new Demuxer_Packet(len); + Demuxer_Packet* dp=new Demuxer_Packet(_len); dp->pts=pts; dp->pos=pos; dp->flags=flags; dp->next=next; - memcpy(dp->buffer,buffer,len); + memcpy(dp->buffer(),_buf,_len); return dp; } - +} // namespace mpxp Modified: mplayerxp/libmpdemux/demuxer_packet.h =================================================================== --- mplayerxp/libmpdemux/demuxer_packet.h 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpdemux/demuxer_packet.h 2012-11-29 07:05:15 UTC (rev 481) @@ -3,28 +3,55 @@ #include "mp_config.h" #include "osdep/mplib.h" using namespace mpxp; +#include <stdint.h> #include <unistd.h> -enum { - DP_NONKEYFRAME =0x00000000UL, - DP_KEYFRAME =0x00000001UL -}; +namespace mpxp { + enum dp_flags_e { + DP_NONKEYFRAME =0x00000000UL, + DP_KEYFRAME =0x00000001UL, -/** Describes demuxer's packet */ -class Demuxer_Packet : public Opaque { - public: - Demuxer_Packet(unsigned len); - virtual ~Demuxer_Packet(); + DP_FULL_FRAME =0x00000000UL, + DP_START_OF_FRAME =0x10000000UL, + DP_PART_OF_FRAME =0x20000000UL, + DP_EOF_OF_FRAME =0x30000000UL, + }; + inline dp_flags_e operator~(dp_flags_e a) { return static_cast<dp_flags_e>(~static_cast<unsigned>(a)); } + inline dp_flags_e operator|(dp_flags_e a, dp_flags_e b) { return static_cast<dp_flags_e>(static_cast<unsigned>(a)|static_cast<unsigned>(b)); } + inline dp_flags_e operator&(dp_flags_e a, dp_flags_e b) { return static_cast<dp_flags_e>(static_cast<unsigned>(a)&static_cast<unsigned>(b)); } + inline dp_flags_e operator^(dp_flags_e a, dp_flags_e b) { return static_cast<dp_flags_e>(static_cast<unsigned>(a)^static_cast<unsigned>(b)); } + inline dp_flags_e operator|=(dp_flags_e a, dp_flags_e b) { return (a=static_cast<dp_flags_e>(static_cast<unsigned>(a)|static_cast<unsigned>(b))); } + inline dp_flags_e operator&=(dp_flags_e a, dp_flags_e b) { return (a=static_cast<dp_flags_e>(static_cast<unsigned>(a)&static_cast<unsigned>(b))); } + inline dp_flags_e operator^=(dp_flags_e a, dp_flags_e b) { return (a=static_cast<dp_flags_e>(static_cast<unsigned>(a)^static_cast<unsigned>(b))); } - void resize(unsigned newlen); - Demuxer_Packet* clone() const; + /** Describes demuxer's packet */ + class Demuxer_Packet : public Opaque { + public: + Demuxer_Packet(unsigned len); + virtual ~Demuxer_Packet(); - unsigned len; /**< length of packet's data */ - float pts; /**< Presentation Time-Stamp (PTS) of data */ - off_t pos; /**< Position in index (AVI) or file (MPG) */ - unsigned char* buffer; /**< buffer of packet's data */ - unsigned flags; /**< 1 - indicates keyframe, 0 - regular frame */ - Demuxer_Packet* next; /**< pointer to the next packet in chain */ + void resize(unsigned newlen); + Demuxer_Packet* clone() const; + + unsigned length() const { return _len; } + uint8_t* buffer() { return _buf; } + const uint8_t* buffer() const { return _buf; } + + enum dp_type_e { + Generic=0, + Video, + Audio, + Sub + }; + dp_type_e type; /**< type of packet's data */ + float pts; /**< Presentation Time-Stamp (PTS) of data */ + off_t pos; /**< Position in index (AVI) or file (MPG) */ + dp_flags_e flags; /**< 1 - indicates keyframe, 0 - regular frame */ + int lang_id;/**< language of this packet */ + Demuxer_Packet* next; /**< pointer to the next packet in chain */ + private: + unsigned _len; /**< length of packet's data */ + uint8_t* _buf; /**< buffer of packet's data */ }; - +} // namespacee mpxp #endif Modified: mplayerxp/libmpstream/s_tv.cpp =================================================================== --- mplayerxp/libmpstream/s_tv.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libmpstream/s_tv.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -121,7 +121,7 @@ len = tvh->functions->get_audio_framesize(reinterpret_cast<priv_s*>(tvh->priv)); dp=new(zeromem) Demuxer_Packet(len); - dp->pts=tvh->functions->grab_audio_frame(reinterpret_cast<priv_s*>(tvh->priv), dp->buffer,len); + dp->pts=tvh->functions->grab_audio_frame(reinterpret_cast<priv_s*>(tvh->priv), dp->buffer(),len); ds_add_packet(demux->audio,dp); } @@ -132,7 +132,7 @@ { len = tvh->functions->get_video_framesize(reinterpret_cast<priv_s*>(tvh->priv)); dp=new(zeromem) Demuxer_Packet(len); - dp->pts=tvh->functions->grab_video_frame(reinterpret_cast<priv_s*>(tvh->priv), dp->buffer, len); + dp->pts=tvh->functions->grab_video_frame(reinterpret_cast<priv_s*>(tvh->priv), dp->buffer(), len); ds_add_packet(demux->video,dp); } Modified: mplayerxp/libvo/aspect.cpp =================================================================== --- mplayerxp/libvo/aspect.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libvo/aspect.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -11,6 +11,8 @@ #endif #include "vo_msg.h" +namespace mpxp { + Aspect::Aspect(float mon_pix_aspect) { monitor_pixel_aspect = mon_pix_aspect; } Aspect::~Aspect() { } @@ -88,4 +90,4 @@ MSG_DBG2("aspect(3) wh: %dx%d (org: %dx%d)\n",srcw,srch,prew,preh); #endif } - +} // namesapce mpxp Modified: mplayerxp/libvo/aspect.h =================================================================== --- mplayerxp/libvo/aspect.h 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libvo/aspect.h 2012-11-29 07:05:15 UTC (rev 481) @@ -4,32 +4,34 @@ #include <stdint.h> #include "mp_config.h" -class Aspect : public Opaque { - public: - Aspect(float moitor_pixel_aspect); - virtual ~Aspect(); +namespace mpxp { + class Aspect : public Opaque { + public: + Aspect(float moitor_pixel_aspect); + virtual ~Aspect(); - void __FASTCALL__ save(uint32_t orgw, uint32_t orgh, + void __FASTCALL__ save(uint32_t orgw, uint32_t orgh, uint32_t prew, uint32_t preh, uint32_t scrw, uint32_t scrh); - void __FASTCALL__ save_image(uint32_t orgw, uint32_t orgh, + void __FASTCALL__ save_image(uint32_t orgw, uint32_t orgh, uint32_t prew, uint32_t preh); - void __FASTCALL__ save_screen(uint32_t scrw, uint32_t scrh); - enum zoom_e { - NOZOOM=0, - ZOOM - }; - void __FASTCALL__ calc(uint32_t& srcw, uint32_t& srch, zoom_e zoom); - private: - uint32_t orgw; // real width - uint32_t orgh; // real height - uint32_t prew; // prescaled width - uint32_t preh; // prescaled height - uint32_t screenw; // horizontal resolution - uint32_t screenh; // vertical resolution - float monitor_aspect; - float monitor_pixel_aspect; -}; + void __FASTCALL__ save_screen(uint32_t scrw, uint32_t scrh); + enum zoom_e { + NOZOOM=0, + ZOOM + }; + void __FASTCALL__ calc(uint32_t& srcw, uint32_t& srch, zoom_e zoom); + private: + uint32_t orgw; // real width + uint32_t orgh; // real height + uint32_t prew; // prescaled width + uint32_t preh; // prescaled height + uint32_t screenw; // horizontal resolution + uint32_t screenh; // vertical resolution + float monitor_aspect; + float monitor_pixel_aspect; + }; +} // namespace mpxp #endif Modified: mplayerxp/libvo/osd_render.cpp =================================================================== --- mplayerxp/libvo/osd_render.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libvo/osd_render.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -26,6 +26,7 @@ #define PVECTOR_ACCEL_H "osd_render_template.h" #include "pvector/pvector_inc.h" +namespace mpxp { #ifdef FAST_OSD_TABLE static unsigned short fast_osd_15bpp_table[256]; static unsigned short fast_osd_16bpp_table[256]; @@ -109,7 +110,7 @@ UNUSED(finalize); } -void OSD_Render::render(int w,int h, const unsigned char* src, const unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride,int finalize) +void OSD_Render::render(int w,int h, const unsigned char* src, const unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride,int finalize) const { (*draw_alpha_ptr)(w,h,src,srca,srcstride,dstbase,dststride,finalize); } @@ -259,3 +260,4 @@ } OSD_Render::~OSD_Render(){} +} // namesapce mpxp Modified: mplayerxp/libvo/osd_render.h =================================================================== --- mplayerxp/libvo/osd_render.h 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libvo/osd_render.h 2012-11-29 07:05:15 UTC (rev 481) @@ -3,23 +3,25 @@ /* Generic alpha renderers for all YUV modes and RGB depths. */ /* These are "reference implementations", should be optimized later (MMX, etc) */ -class OSD_Render : public Opaque { - public: - OSD_Render(unsigned fourcc); - virtual ~OSD_Render(); +namespace mpxp { + class OSD_Render : public Opaque { + public: + OSD_Render(unsigned fourcc); + virtual ~OSD_Render(); - void render(int w,int h, const unsigned char* src, const unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride,int finalize); - private: - void get_draw_alpha(unsigned fmt); - typedef void (* __FASTCALL__ draw_alpha_f)(int w,int h, const unsigned char* src, const unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride,int finalize); - draw_alpha_f draw_alpha_ptr; - draw_alpha_f draw_alpha_yv12_ptr; - draw_alpha_f draw_alpha_yuy2_ptr; - draw_alpha_f draw_alpha_uyvy_ptr; - draw_alpha_f draw_alpha_rgb24_ptr; - draw_alpha_f draw_alpha_rgb32_ptr; - draw_alpha_f draw_alpha_rgb15_ptr; - draw_alpha_f draw_alpha_rgb16_ptr; -}; + void render(int w,int h, const unsigned char* src, const unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride,int finalize) const; + private: + void get_draw_alpha(unsigned fmt); + typedef void (* __FASTCALL__ draw_alpha_f)(int w,int h, const unsigned char* src, const unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride,int finalize); + draw_alpha_f draw_alpha_ptr; + draw_alpha_f draw_alpha_yv12_ptr; + draw_alpha_f draw_alpha_yuy2_ptr; + draw_alpha_f draw_alpha_uyvy_ptr; + draw_alpha_f draw_alpha_rgb24_ptr; + draw_alpha_f draw_alpha_rgb32_ptr; + draw_alpha_f draw_alpha_rgb15_ptr; + draw_alpha_f draw_alpha_rgb16_ptr; + }; +} // namespace mpxp #endif Modified: mplayerxp/libvo/video_out.cpp =================================================================== --- mplayerxp/libvo/video_out.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/libvo/video_out.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -129,7 +129,7 @@ dri_priv_t dri; const vo_info_t* video_out; class VO_Interface* vo_iface; - OSD_Render* draw_alpha; + const OSD_Render* draw_alpha; }; vo_priv_t::vo_priv_t() { Modified: mplayerxp/postproc/libmenu/menu.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu.cpp 2012-11-29 05:55:12 UTC (rev 480) +++ mplayerxp/postproc/libmenu/menu.cpp 2012-11-29 07:05:15 UTC (rev 481) @@ -333,7 +333,7 @@ #endif void menu_draw_text(mp_image_t* mpi,const char* txt, int x, int y) { - OSD_Render& draw_alpha = *new(zeromem) OSD_Render(mpi->imgfmt); + const OSD_Render& draw_alpha = *new(zeromem) OSD_Render(mpi->imgfmt); int font; int finalize=vo_is_final(vo_data); @@ -365,7 +365,7 @@ int ll = 0; int font; int finalize=vo_is_final(vo_data); - OSD_Render& draw_alpha = *new(zeromem) OSD_Render(mpi->imgfmt); + const OSD_Render& draw_alpha = *new(zeromem) OSD_Render(mpi->imgfmt); #ifdef USE_FRIBIDI txt = menu_fribidi(txt); @@ -596,7 +596,7 @@ void menu_draw_box(const mp_image_t* mpi,unsigned char grey,unsigned char alpha, int x, int y, int w, int h) { - OSD_Render& draw_alpha = *new(zeromem) OSD_Render(mpi->imgfmt); + const OSD_Render& draw_alpha = *new(zeromem) OSD_Render(mpi->imgfmt); int g; if(x > mpi->w || y > mpi->h) return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |