diff options
author | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-10-23 13:55:49 +0000 |
---|---|---|
committer | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-10-23 13:55:49 +0000 |
commit | adfdd89012aec17df319824f712acd817a26154e (patch) | |
tree | 2e701b767fcd47dc64314ae4ea1f8c1a66a0cb65 /libmpdemux | |
parent | 9066ffe1e63733bfcf7d307c227333c2aee4ca35 (diff) | |
download | mpv-adfdd89012aec17df319824f712acd817a26154e.tar.bz2 mpv-adfdd89012aec17df319824f712acd817a26154e.tar.xz |
compressed mov audio fixed
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2420 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_mov.c | 6 | ||||
-rw-r--r-- | libmpdemux/demuxer.c | 2 | ||||
-rw-r--r-- | libmpdemux/demuxer.h | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c index 8264bee274..d521cbf686 100644 --- a/libmpdemux/demux_mov.c +++ b/libmpdemux/demux_mov.c @@ -548,10 +548,14 @@ int demux_mov_fill_buffer(demuxer_t *demuxer,demux_stream_t* ds){ if(trak->samplesize){ // read chunk: + int x; if(trak->pos>=trak->chunks_size) return 0; // EOF stream_seek(demuxer->stream,trak->chunks[trak->pos].pos); pts=(float)(trak->chunks[trak->pos].sample*trak->duration)/(float)trak->timescale; - ds_read_packet(ds,demuxer->stream,trak->chunks[trak->pos].size*trak->samplesize,pts,trak->chunks[trak->pos].pos,0); + x=trak->chunks[trak->pos].size*trak->samplesize; + x/=ds->ss_div; x*=ds->ss_mul; // compression ratio fix + ds_read_packet(ds,demuxer->stream,x,pts,trak->chunks[trak->pos].pos,0); + if(ds==demuxer->audio) printf("sample %d bytes pts %5.3f\n",trak->chunks[trak->pos].size*trak->samplesize,pts); } else { // read sample: if(trak->pos>=trak->samples_size) return 0; // EOF diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index c4a44339d8..45fbec9f9e 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -40,6 +40,8 @@ demux_stream_t* new_demuxer_stream(struct demuxer_st *demuxer,int id){ ds->asf_seq=-1; ds->asf_packet=NULL; //---------------- + ds->ss_mul=ds->ss_div=1; +//---------------- ds->sh=NULL; return ds; } diff --git a/libmpdemux/demuxer.h b/libmpdemux/demuxer.h index 0cb3eea22e..17661fe716 100644 --- a/libmpdemux/demuxer.h +++ b/libmpdemux/demuxer.h @@ -50,6 +50,8 @@ typedef struct { // ---- asf ----- demux_packet_t *asf_packet; // read asf fragments here int asf_seq; +// ---- mov ----- + unsigned int ss_mul,ss_div; // ---- stream header ---- void* sh; } demux_stream_t; |