summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authoralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-02 10:25:48 +0000
committeralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-02 10:25:48 +0000
commit1a015fd22a80b9b0acdffd8395fa8c323a2d5622 (patch)
tree89c6596655ff1a6b20864066ee6dd32e5a5775b2 /libmpdemux/demuxer.c
parent1be119decc5d477e77b4cbb770516f37c58389c7 (diff)
downloadmpv-1a015fd22a80b9b0acdffd8395fa8c323a2d5622.tar.bz2
mpv-1a015fd22a80b9b0acdffd8395fa8c323a2d5622.tar.xz
Fix frame_time for variable fps movies as it was the last frame duration.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5931 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 8107638381..6b95faffc5 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -438,6 +438,25 @@ int ds_get_packet_sub(demux_stream_t *ds,unsigned char **start){
}
}
+float ds_get_next_pts(demux_stream_t *ds) {
+ demuxer_t* demux = ds->demuxer;
+ while(!ds->first) {
+ if(demux->audio->packs>=MAX_PACKS || demux->audio->bytes>=MAX_PACK_BYTES){
+ mp_msg(MSGT_DEMUXER,MSGL_ERR,MSGTR_TooManyAudioInBuffer,demux->audio->packs,demux->audio->bytes);
+ mp_msg(MSGT_DEMUXER,MSGL_HINT,MSGTR_MaybeNI);
+ return -1;
+ }
+ if(demux->video->packs>=MAX_PACKS || demux->video->bytes>=MAX_PACK_BYTES){
+ mp_msg(MSGT_DEMUXER,MSGL_ERR,MSGTR_TooManyVideoInBuffer,demux->video->packs,demux->video->bytes);
+ mp_msg(MSGT_DEMUXER,MSGL_HINT,MSGTR_MaybeNI);
+ return -1;
+ }
+ if(!demux_fill_buffer(demux,ds))
+ return -1;
+ }
+ return ds->first->pts;
+}
+
// ====================================================================
// feed-back from demuxers:
@@ -696,7 +715,7 @@ if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_MPEG_PS){
mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedMPEGPSfile);
file_format=DEMUXER_TYPE_MPEG_PS;
} else {
- printf("MPEG packet stats: p100: %d p101: %d PES: %d MP3: %d \n",
+ mp_msg(MSGT_DEMUX,MSGL_V,"MPEG packet stats: p100: %d p101: %d PES: %d MP3: %d \n",
num_elementary_packets100,num_elementary_packets101,num_elementary_packetsPES,num_mp3audio_packets);
//MPEG packet stats: p100: 458 p101: 458 PES: 0 MP3: 1103 (.m2v)
if(num_mp3audio_packets>50 && num_mp3audio_packets>2*num_elementary_packets100