diff --git a/doc/APIchanges b/doc/APIchanges index 20bab5a241..9203cee3d6 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,9 @@ libavutil: 2011-04-18 API changes, most recent first: +2012-07-20 - xxxxxxx - lavc 54.43.100 + Add decode_error_flags field to AVFrame. + 2012-07-20 - xxxxxxx - lavf 54.18.100 Add avformat_match_stream_specifier() function. diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 6711b78d3d..dda46f8e90 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1323,6 +1323,19 @@ typedef struct AVFrame { * - decoding: Set by libavcodec. */ AVDictionary *metadata; + + /** + * decode error flags of the frame, set to a combination of + * FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there + * were errors during the decoding. + * Code outside libavcodec should access this field using: + * av_frame_get_decode_error_flags(frame) + * - encoding: unused + * - decoding: set by libavcodec, read by user. + */ + int decode_error_flags; +#define FF_DECODE_ERROR_INVALID_BITSTREAM 1 +#define FF_DECODE_ERROR_MISSING_REFERENCE 2 } AVFrame; /** @@ -1342,6 +1355,8 @@ int av_frame_get_sample_rate (const AVFrame *frame); void av_frame_set_sample_rate (AVFrame *frame, int val); AVDictionary *av_frame_get_metadata (const AVFrame *frame); void av_frame_set_metadata (AVFrame *frame, AVDictionary *val); +int av_frame_get_decode_error_flags (const AVFrame *frame); +void av_frame_set_decode_error_flags (AVFrame *frame, int val); struct AVCodecInternal; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index e73d72abba..53fda1f9b0 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -726,6 +726,7 @@ MAKE_ACCESSORS(AVFrame, frame, int64_t, pkt_pos) MAKE_ACCESSORS(AVFrame, frame, int64_t, channel_layout) MAKE_ACCESSORS(AVFrame, frame, int, sample_rate) MAKE_ACCESSORS(AVFrame, frame, AVDictionary *, metadata) +MAKE_ACCESSORS(AVFrame, frame, int, decode_error_flags) MAKE_ACCESSORS(AVCodecContext, codec, AVRational, pkt_timebase) diff --git a/libavcodec/version.h b/libavcodec/version.h index 2f829171f8..47e6ff938b 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -27,7 +27,7 @@ */ #define LIBAVCODEC_VERSION_MAJOR 54 -#define LIBAVCODEC_VERSION_MINOR 42 +#define LIBAVCODEC_VERSION_MINOR 43 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \