diff --git a/libavformat/avidec.c b/libavformat/avidec.c index 93b15bddf77505fb94f8d06c147b3fe10fcfb4dd..704980c7a159f7f5f6e5fd2927410494ebe5c91d 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -1386,7 +1386,14 @@ static int avi_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp ast= st->priv_data; index= av_index_search_timestamp(st, timestamp * FFMAX(ast->sample_size, 1), flags); if(index<0) + if (index<0) { + if (st->nb_index_entries > 0) + av_log(s, AV_LOG_ERROR, "Failed to find timestamp %"PRId64 " in index %"PRId64 " .. %"PRId64 "\n", + timestamp * FFMAX(ast->sample_size, 1), + st->index_entries[0].timestamp, + st->index_entries[st->nb_index_entries - 1].timestamp); return -1; + } /* find the position */ pos = st->index_entries[index].pos; @@ -1457,8 +1464,10 @@ static int avi_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp } /* do the seek */ - if (avio_seek(s->pb, pos_min, SEEK_SET) < 0) + if (avio_seek(s->pb, pos_min, SEEK_SET) < 0) { + av_log(s, AV_LOG_ERROR, "Seek failed\n"); return -1; + } avi->stream_index= -1; avi->dts_max= INT_MIN; return 0;