diff options
author | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-01-13 02:42:06 +0000 |
---|---|---|
committer | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-01-13 02:42:06 +0000 |
commit | 1e166db2028c0f27ea32d3c9427f993cc24d85ce (patch) | |
tree | 062a78471fa9dfd96dc563945706f4cb0b150539 /libmpdemux/demux_mov.c | |
parent | 57b2503b004ce37b7de9cc62682dcfd58ff2a33a (diff) | |
download | mpv-1e166db2028c0f27ea32d3c9427f993cc24d85ce.tar.bz2 mpv-1e166db2028c0f27ea32d3c9427f993cc24d85ce.tar.xz |
patch adds support for MOV-Reference-Files.
it uses d_video queue to store playlist entries as strz.
It also makes sure, that unnecessary items like qt5gateQT are removed and
that the url/basepath is added to "local files"
by Fabian Franz <FabianFranz@gmx.de>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8938 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mov.c')
-rw-r--r-- | libmpdemux/demux_mov.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c index 5beb69a9d0..1f2af95c66 100644 --- a/libmpdemux/demux_mov.c +++ b/libmpdemux/demux_mov.c @@ -356,6 +356,8 @@ int mov_check_file(demuxer_t* demuxer){ int ref=0; skipped+=i; mp_msg(MSGT_DEMUX,MSGL_INFO,"MOV: Reference Media file!!!\n"); + //set demuxer type to playlist ... + demuxer->type=DEMUXER_TYPE_PLAYLIST; while(i>0){ int len=stream_read_dword(demuxer->stream)-8; int fcc=stream_read_dword(demuxer->stream); @@ -369,10 +371,21 @@ int mov_check_file(demuxer_t* demuxer){ int tmp=stream_read_dword(demuxer->stream); int type=stream_read_dword_le(demuxer->stream); int slen=stream_read_dword(demuxer->stream); - char* s=malloc(slen+1); - stream_read(demuxer->stream,s,slen); - s[slen]=0; - mp_msg(MSGT_DEMUX,MSGL_INFO,"REF: [%.4s] %s\n",&type,s); + //char* s=malloc(slen+1); + //stream_read(demuxer->stream,s,slen); + + //FIXME: also store type & data_rate ? + ds_read_packet(demuxer->video, + demuxer->stream, + slen, + 0, + stream_tell(demuxer->stream), + 0 // no flags + ); + flags|=4; + mp_msg(MSGT_DEMUX,MSGL_V,"Added reference to playlist\n"); + //s[slen]=0; + //mp_msg(MSGT_DEMUX,MSGL_INFO,"REF: [%.4s] %s\n",&type,s); len-=12+slen;i-=12+slen; break; } case MOV_FOURCC('r','m','d','r'): { @@ -434,6 +447,9 @@ skip_chunk: } free(priv); + if (flags==5) // reference & header sent + return 1; + if(flags==1) mp_msg(MSGT_DEMUX,MSGL_WARN,"MOV: missing data (mdat) chunk! Maybe broken file...\n"); else if(flags==2) |