comparison libmpdemux/demuxer.h @ 8030:2b39ff3860b7

cleanup of .AVI timestamp calculation (ugly hack from mplayer.c removed, instead doing it in demux_avi.c, storing private data in priv insteda of demuxer structs)
author arpi
date Sat, 02 Nov 2002 00:45:12 +0000
parents 75c5762e7b55
children ae5a2ae1c349
comparison
equal deleted inserted replaced
8029:6ccd72982b88 8030:2b39ff3860b7
69 float pts; // current buffer's pts 69 float pts; // current buffer's pts
70 int pts_bytes; // number of bytes read after last pts stamp 70 int pts_bytes; // number of bytes read after last pts stamp
71 int eof; // end of demuxed stream? (true if all buffer empty) 71 int eof; // end of demuxed stream? (true if all buffer empty)
72 off_t pos; // position in the input stream (file) 72 off_t pos; // position in the input stream (file)
73 off_t dpos; // position in the demuxed stream 73 off_t dpos; // position in the demuxed stream
74 off_t block_no; // number of <=block_size length blocks (for VBR mp3)
75 int pack_no; // serial number of packet 74 int pack_no; // serial number of packet
76 int flags; // flags of current packet (keyframe etc) 75 int flags; // flags of current packet (keyframe etc)
77 //--------------- 76 //---------------
78 int packs; // number of packets in buffer 77 int packs; // number of packets in buffer
79 int bytes; // total bytes of packets in buffer 78 int bytes; // total bytes of packets in buffer
85 // ---- asf ----- 84 // ---- asf -----
86 demux_packet_t *asf_packet; // read asf fragments here 85 demux_packet_t *asf_packet; // read asf fragments here
87 int asf_seq; 86 int asf_seq;
88 // ---- mov ----- 87 // ---- mov -----
89 unsigned int ss_mul,ss_div; 88 unsigned int ss_mul,ss_div;
90 // ---- avi -----
91 unsigned int block_size;
92 // ---- stream header ---- 89 // ---- stream header ----
93 void* sh; 90 void* sh;
94 } demux_stream_t; 91 } demux_stream_t;
95 92
96 typedef struct demuxer_info_st { 93 typedef struct demuxer_info_st {
181 return (ds->dpos-ds->buffer_size)+ds->buffer_pos; 178 return (ds->dpos-ds->buffer_size)+ds->buffer_pos;
182 } 179 }
183 180
184 inline static int ds_tell_pts(demux_stream_t *ds){ 181 inline static int ds_tell_pts(demux_stream_t *ds){
185 return (ds->pts_bytes-ds->buffer_size)+ds->buffer_pos; 182 return (ds->pts_bytes-ds->buffer_size)+ds->buffer_pos;
186 }
187
188 inline static off_t ds_tell_block(demux_stream_t *ds){
189 return ds->block_no-(ds->buffer_size-ds->buffer_pos)/ds->block_size;
190 } 183 }
191 184
192 int demux_read_data(demux_stream_t *ds,unsigned char* mem,int len); 185 int demux_read_data(demux_stream_t *ds,unsigned char* mem,int len);
193 int demux_read_data_pack(demux_stream_t *ds,unsigned char* mem,int len); 186 int demux_read_data_pack(demux_stream_t *ds,unsigned char* mem,int len);
194 187