Browse Source

avidec: print informative error messages if seeking fails.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.11
Michael Niedermayer 13 years ago
parent
commit
b8c1655882
1 changed files with 10 additions and 1 deletions
  1. +10
    -1
      libavformat/avidec.c

+ 10
- 1
libavformat/avidec.c View File

@@ -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;


Loading…
Cancel
Save