Index: libmpdemux/demux_mpg.c =================================================================== --- libmpdemux/demux_mpg.c £¨ÐÞ¶©°æ 22356£© +++ libmpdemux/demux_mpg.c £¨¹¤×÷¿½±´£© @@ -180,7 +180,8 @@ //if seeking is allowed set has_valid_timestamps if appropriate if(demuxer->seekable - && demuxer->stream->type == STREAMTYPE_FILE + && (demuxer->stream->type == STREAMTYPE_FILE || + demuxer->stream->type == STREAMTYPE_VCD) && demuxer->movi_start != demuxer-> movi_end ) { @@ -195,7 +196,7 @@ float first_pts = read_first_mpeg_pts_at_position(demuxer, demuxer->movi_start); if(first_pts != -1.0) { - float middle_pts = read_first_mpeg_pts_at_position(demuxer, (demuxer->movi_end - demuxer->movi_start)/2); + float middle_pts = read_first_mpeg_pts_at_position(demuxer, (demuxer->movi_end + demuxer->movi_start)/2); if(middle_pts != -1.0) { float final_pts = read_first_mpeg_pts_at_position(demuxer, demuxer->movi_end - TIMESTAMP_PROBE_LEN);