RCS file: /cvsroot/mplayer/main/libmpdemux/demux_ogg.c,v
retrieving revision 1.80
diff -u -r1.80 demux_ogg.c
|
|
|
|
| 554 | 554 | if (ds == d->video && ((sh_audio_t*)ds->sh)->format == FOURCC_THEORA) |
| 555 | 555 | context = ((sh_video_t *)ds->sh)->context; |
| 556 | 556 | data = demux_ogg_read_packet(os,pack,context,&pts,&flags,samplesize); |
| 557 | | if(d->video->id < 0) |
| 558 | | ((sh_audio_t*)ds->sh)->delay = pts; |
| 559 | 557 | |
| 560 | 558 | /// Clear subtitles if necessary (for broken files) |
| 561 | 559 | if ((clear_sub > 0) && (pts >= clear_sub)) { |
| … |
… |
|
| 1390 | 1388 | |
| 1391 | 1389 | } |
| 1392 | 1390 | |
| 1393 | | extern void resync_audio_stream(sh_audio_t *sh_audio); |
| 1394 | | |
| 1395 | 1391 | static void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,int flags) { |
| 1396 | 1392 | ogg_demuxer_t* ogg_d = demuxer->priv; |
| 1397 | 1393 | ogg_sync_state* sync = &ogg_d->sync; |
| … |
… |
|
| 1473 | 1469 | } |
| 1474 | 1470 | } |
| 1475 | 1471 | if (pos < 0) pos = 0; |
| 1476 | | if (pos > (demuxer->movi_end - demuxer->movi_start)) return; |
| | 1472 | if (pos > (demuxer->movi_end - demuxer->movi_start)) |
| | 1473 | pos = demuxer->movi_end - demuxer->movi_start; |
| 1477 | 1474 | } // if(ogg_d->syncpoints) |
| 1478 | 1475 | |
| 1479 | 1476 | while(1) { |
| … |
… |
|
| 1502 | 1499 | char* buf = ogg_sync_buffer(sync,BLOCK_SIZE); |
| 1503 | 1500 | int len = stream_read(demuxer->stream,buf,BLOCK_SIZE); |
| 1504 | 1501 | if(len == 0 && demuxer->stream->eof) { |
| 1505 | | mp_msg(MSGT_DEMUX,MSGL_ERR,"EOF while trying to seek !!!!\n"); |
| 1506 | | break; |
| | 1502 | mp_msg(MSGT_DEMUX,MSGL_V,"EOF while trying to seek !!!!\n"); |
| | 1503 | return; |
| 1507 | 1504 | } |
| 1508 | 1505 | ogg_sync_wrote(sync,len); |
| 1509 | 1506 | continue; |
| … |
… |
|
| 1558 | 1555 | vo_osd_changed(OSDTYPE_SUBTITLE); |
| 1559 | 1556 | clear_sub = -1; |
| 1560 | 1557 | demux_ogg_add_packet(ds,os,ds->id,&op); |
| 1561 | | if(sh_audio) |
| 1562 | | resync_audio_stream(sh_audio); |
| | 1558 | if (demuxer->video->id < 0) |
| | 1559 | sh_audio->delay = pts; |
| 1563 | 1560 | return; |
| 1564 | 1561 | } |
| 1565 | 1562 | } |