Mercurial > mplayer.hg
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 |