comparison libmpdemux/demux_mpg.c @ 18077:cede662f40a5

timestamps are 33 bits long, so they don't fit in an unsigned int; 10l
author nicodvb
date Tue, 11 Apr 2006 20:05:24 +0000
parents 284751bccd04
children 841789620ed1
comparison
equal deleted inserted replaced
18076:d30afd14867f 18077:cede662f40a5
150 mpg_demuxer_t* mpg_d = demuxer->priv; 150 mpg_demuxer_t* mpg_d = demuxer->priv;
151 if (mpg_d) free(mpg_d); 151 if (mpg_d) free(mpg_d);
152 } 152 }
153 153
154 154
155 static unsigned int read_mpeg_timestamp(stream_t *s,int c){ 155 static unsigned long long read_mpeg_timestamp(stream_t *s,int c){
156 int d,e; 156 int d,e;
157 unsigned int pts; 157 unsigned long long pts;
158 d=stream_read_word(s); 158 d=stream_read_word(s);
159 e=stream_read_word(s); 159 e=stream_read_word(s);
160 if( ((c&1)!=1) || ((d&1)!=1) || ((e&1)!=1) ){ 160 if( ((c&1)!=1) || ((d&1)!=1) || ((e&1)!=1) ){
161 ++mpeg_pts_error; 161 ++mpeg_pts_error;
162 return 0; // invalid pts 162 return 0; // invalid pts
185 185
186 static int demux_mpg_read_packet(demuxer_t *demux,int id){ 186 static int demux_mpg_read_packet(demuxer_t *demux,int id){
187 int d; 187 int d;
188 int len; 188 int len;
189 unsigned char c=0; 189 unsigned char c=0;
190 unsigned int pts=0; 190 unsigned long long pts=0;
191 unsigned int dts=0; 191 unsigned long long dts=0;
192 demux_stream_t *ds=NULL; 192 demux_stream_t *ds=NULL;
193 mpg_demuxer_t *priv = (mpg_demuxer_t *) demux->priv; 193 mpg_demuxer_t *priv = (mpg_demuxer_t *) demux->priv;
194 194
195 mp_dbg(MSGT_DEMUX,MSGL_DBG3,"demux_read_packet: %X\n",id); 195 mp_dbg(MSGT_DEMUX,MSGL_DBG3,"demux_read_packet: %X\n",id);
196 196