This will prevent seeking by bytes for formats that cannot handle this.tags/n0.9
@@ -13,6 +13,9 @@ libavutil: 2011-04-18 | |||||
API changes, most recent first: | API changes, most recent first: | ||||
2011-xx-xx - xxxxxxx - lavf 53.9.0 | |||||
Add AVFMT_NO_BYTE_SEEK AVInputFormat flag. | |||||
2011-10-12 - lavu 51.12.0 | 2011-10-12 - lavu 51.12.0 | ||||
AVOptions API rewrite. | AVOptions API rewrite. | ||||
@@ -274,6 +274,7 @@ typedef struct AVFormatParameters { | |||||
#define AVFMT_NOSTREAMS 0x1000 /**< Format does not require any streams */ | #define AVFMT_NOSTREAMS 0x1000 /**< Format does not require any streams */ | ||||
#define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fallback to binary search via read_timestamp */ | #define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fallback to binary search via read_timestamp */ | ||||
#define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fallback to generic search */ | #define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fallback to generic search */ | ||||
#define AVFMT_NO_BYTE_SEEK 0x8000 /**< Format does not allow seeking by bytes */ | |||||
typedef struct AVOutputFormat { | typedef struct AVOutputFormat { | ||||
const char *name; | const char *name; | ||||
@@ -408,7 +409,7 @@ typedef struct AVInputFormat { | |||||
/** | /** | ||||
* Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS, | * Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS, | ||||
* AVFMT_GENERIC_INDEX, AVFMT_TS_DISCONT, AVFMT_NOBINSEARCH, | * AVFMT_GENERIC_INDEX, AVFMT_TS_DISCONT, AVFMT_NOBINSEARCH, | ||||
* AVFMT_NOGENSEARCH. | |||||
* AVFMT_NOGENSEARCH, AVFMT_NO_BYTE_SEEK. | |||||
*/ | */ | ||||
int flags; | int flags; | ||||
@@ -1750,6 +1750,8 @@ int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int f | |||||
AVStream *st; | AVStream *st; | ||||
if (flags & AVSEEK_FLAG_BYTE) { | if (flags & AVSEEK_FLAG_BYTE) { | ||||
if (s->iformat->flags & AVFMT_NO_BYTE_SEEK) | |||||
return -1; | |||||
ff_read_frame_flush(s); | ff_read_frame_flush(s); | ||||
return seek_frame_byte(s, stream_index, timestamp, flags); | return seek_frame_byte(s, stream_index, timestamp, flags); | ||||
} | } | ||||
@@ -24,7 +24,7 @@ | |||||
#include "libavutil/avutil.h" | #include "libavutil/avutil.h" | ||||
#define LIBAVFORMAT_VERSION_MAJOR 53 | #define LIBAVFORMAT_VERSION_MAJOR 53 | ||||
#define LIBAVFORMAT_VERSION_MINOR 8 | |||||
#define LIBAVFORMAT_VERSION_MINOR 9 | |||||
#define LIBAVFORMAT_VERSION_MICRO 0 | #define LIBAVFORMAT_VERSION_MICRO 0 | ||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ | #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ | ||||