summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mov.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demux_mov.c')
-rw-r--r--libmpdemux/demux_mov.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c
index eed30e6a7e..1e0379a5c5 100644
--- a/libmpdemux/demux_mov.c
+++ b/libmpdemux/demux_mov.c
@@ -622,6 +622,15 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak
sh_audio_t* sh=new_sh_audio(demuxer,priv->track_db);
sh->format=trak->fourcc;
+ // crude audio delay from editlist0 hack ::atm
+ if(trak->editlist_size>=1) {
+ if(trak->editlist[0].pos == -1) {
+ sh->stream_delay = (float)trak->editlist[0].dur/(float)priv->timescale;
+ mp_msg(MSGT_DEMUX,MSGL_V,"MOV: Initial Audio-Delay: %.3f sec\n", sh->stream_delay);
+ }
+ }
+
+
switch( sh->format ) {
case 0x726D6173: /* samr */
/* amr narrowband */
@@ -929,6 +938,15 @@ quit_vorbis_block:
int depth;
sh->format=trak->fourcc;
+ // crude video delay from editlist0 hack ::atm
+ if(trak->editlist_size>=1) {
+ if(trak->editlist[0].pos == -1) {
+ sh->stream_delay = (float)trak->editlist[0].dur/(float)priv->timescale;
+ mp_msg(MSGT_DEMUX,MSGL_V,"MOV: Initial Video-Delay: %.3f sec\n", sh->stream_delay);
+ }
+ }
+
+
if (trak->stdata_len < 78) {
mp_msg(MSGT_DEMUXER, MSGL_WARN,
"MOV: Invalid (%d bytes instead of >= 78) video trak desc\n",