From: Daniel Caujolle-B. <f1...@us...> - 2002-05-16 21:45:15
|
Update of /cvsroot/xine/xine-lib/src/demuxers In directory usw-pr-cvs1:/tmp/cvs-serv5872 Modified Files: demux_qt.c Log Message: Don't segfault if moov header not found. xine_log() call after demux_qt_detect_compressors() should avoid segfault too. Index: demux_qt.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_qt.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- demux_qt.c 14 May 2002 21:32:06 -0000 1.29 +++ demux_qt.c 16 May 2002 21:45:10 -0000 1.30 @@ -3215,7 +3215,8 @@ if (tlen != 1) { printf ("demux_qt: QT cmov: read err tlen %llu\n", tlen); - free(cmov_buf); + if(cmov_buf) + free(cmov_buf); return 0; } @@ -3286,7 +3287,7 @@ || (quicktime_position(file) < file->decompressed_buffer_size && file->decompressed_buffer!=NULL)); - return 0; + return 1; } @@ -3585,8 +3586,7 @@ quicktime_read_mdat(file, &(file->mdat), &leaf_atom, xine); found_mdat = 1; } else if(quicktime_atom_is(&leaf_atom, "moov")) { - quicktime_read_moov(file, &(file->moov), &leaf_atom, xine); - found_moov = 1; + found_moov = quicktime_read_moov(file, &(file->moov), &leaf_atom, xine); } else { quicktime_atom_skip(file, &leaf_atom); } @@ -4232,19 +4232,19 @@ return; } - xine_log (this->xine, XINE_LOG_FORMAT, - _("demux_qt: video codec %s (%f fps), audio codec %s (%ld Hz, %d bits)\n"), - quicktime_video_compressor (this->qt,0), - quicktime_frame_rate (this->qt,0), - quicktime_audio_compressor (this->qt,0), - quicktime_sample_rate (this->qt,0), - quicktime_audio_bits (this->qt,0)); - if (!demux_qt_detect_compressors (this)) { this->status = DEMUX_FINISHED; pthread_mutex_unlock( &this->mutex ); return; } + + xine_log (this->xine, XINE_LOG_FORMAT, + _("demux_qt: video codec %s (%f fps), audio codec %s (%ld Hz, %d bits)\n"), + quicktime_video_compressor (this->qt,0), + quicktime_frame_rate (this->qt,0), + quicktime_audio_compressor (this->qt,0), + quicktime_sample_rate (this->qt,0), + quicktime_audio_bits (this->qt,0)); /* * generate index |