Handle raw yv12 video as I420 to fix some Broadcast 2000 created samples.

patch by Reza Jelveh, approval by Roberto


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14180 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
diego 2004-12-18 01:12:02 +00:00
parent 09f6cb8d79
commit a688341112
1 changed files with 3 additions and 0 deletions

View File

@ -629,6 +629,9 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak
off_t pos=stream_tell(demuxer->stream); off_t pos=stream_tell(demuxer->stream);
off_t len=stream_read_dword(demuxer->stream); off_t len=stream_read_dword(demuxer->stream);
unsigned int fourcc=stream_read_dword_le(demuxer->stream); unsigned int fourcc=stream_read_dword_le(demuxer->stream);
/* some files created with Broadcast 2000 (e.g. ilacetest.mov)
contain raw I420 video but have a yv12 fourcc */
if(fourcc==mmioFOURCC('y','v','1','2')) fourcc=mmioFOURCC('I','4','2','0');
if(len<8) break; // error if(len<8) break; // error
mp_msg(MSGT_DEMUX,MSGL_V,"MOV: %*s desc #%d: %.4s (%d bytes)\n",level,"",i,&fourcc,len-16); mp_msg(MSGT_DEMUX,MSGL_V,"MOV: %*s desc #%d: %.4s (%d bytes)\n",level,"",i,&fourcc,len-16);
if(fourcc!=trak->fourcc && i) if(fourcc!=trak->fourcc && i)