Mercurial > mplayer.hg
comparison libmpdemux/demuxer.c @ 18242:caac2ca98168
4 - Implement a better way to calculate current audio pts and use it for
audio decoded with ad_libvorbis, ad_ffmpeg and ad_faad.
Patch by Uoti Urpala
author | rtognimp |
---|---|
date | Mon, 24 Apr 2006 10:58:40 +0000 |
parents | 4231482179b6 |
children | 87161f96fa66 |
comparison
equal
deleted
inserted
replaced
18241:b19dada1aeeb | 18242:caac2ca98168 |
---|---|
222 sh = demuxer->a_streams[id]; | 222 sh = demuxer->a_streams[id]; |
223 // set some defaults | 223 // set some defaults |
224 sh->samplesize=2; | 224 sh->samplesize=2; |
225 sh->sample_format=AF_FORMAT_S16_NE; | 225 sh->sample_format=AF_FORMAT_S16_NE; |
226 sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/ | 226 sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/ |
227 sh->pts=MP_NOPTS_VALUE; | |
227 if (!demux_aid_vid_mismatch) | 228 if (!demux_aid_vid_mismatch) |
228 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", id); | 229 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", id); |
229 } | 230 } |
230 return demuxer->a_streams[id]; | 231 return demuxer->a_streams[id]; |
231 } | 232 } |
500 ds->buffer_pos+=len; | 501 ds->buffer_pos+=len; |
501 return len; | 502 return len; |
502 } | 503 } |
503 } | 504 } |
504 | 505 |
506 int ds_get_packet_pts(demux_stream_t *ds,unsigned char **start, double *pts) | |
507 { | |
508 int len; | |
509 *pts = MP_NOPTS_VALUE; | |
510 if(ds->buffer_pos>=ds->buffer_size){ | |
511 if (!ds_fill_buffer(ds)) { | |
512 // EOF | |
513 *start = NULL; | |
514 return -1; | |
515 } | |
516 // Should use MP_NOPTS_VALUE for "unknown pts" in the packets too | |
517 if (ds->current->pts) | |
518 *pts = ds->current->pts; | |
519 } | |
520 len=ds->buffer_size-ds->buffer_pos; | |
521 *start = &ds->buffer[ds->buffer_pos]; | |
522 ds->buffer_pos+=len; | |
523 return len; | |
524 } | |
525 | |
505 int ds_get_packet_sub(demux_stream_t *ds,unsigned char **start){ | 526 int ds_get_packet_sub(demux_stream_t *ds,unsigned char **start){ |
506 while(1){ | 527 while(1){ |
507 int len; | 528 int len; |
508 if(ds->buffer_pos>=ds->buffer_size){ | 529 if(ds->buffer_pos>=ds->buffer_size){ |
509 *start = NULL; | 530 *start = NULL; |