diff --git a/libavformat/avformat.h b/libavformat/avformat.h index e7613af7ee..3c61e192ed 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -216,6 +216,7 @@ typedef struct AVInputFormat { * @param stream_index must not be -1 * @param flags selects which direction should be preferred if no exact * match is available + * @return >= 0 on success (but not necessarily the new offset) */ int (*read_seek)(struct AVFormatContext *, int stream_index, int64_t timestamp, int flags); diff --git a/libavformat/dv.c b/libavformat/dv.c index 10a3062601..e459ed9742 100644 --- a/libavformat/dv.c +++ b/libavformat/dv.c @@ -426,7 +426,8 @@ static int dv_read_seek(AVFormatContext *s, int stream_index, dv_offset_reset(c, offset / c->sys->frame_size); - return url_fseek(&s->pb, offset, SEEK_SET); + offset = url_fseek(&s->pb, offset, SEEK_SET); + return (offset < 0)?offset:0; } static int dv_read_close(AVFormatContext *s)