diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2012-12-14 11:58:21 +0100 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2012-12-15 11:46:30 +0100 |
commit | 96d815fc0c71d08b9c4bd65aea021bd0760f2287 (patch) | |
tree | 5604c1d6956389eb5ca732febb983960cfd50792 | |
parent | a8b3f0c5cf548f654e30c981988bb71981a3f8d3 (diff) | |
download | ffmpeg-96d815fc0c71d08b9c4bd65aea021bd0760f2287.tar.gz |
lavc: add pkt_size field to AVFrame
-rw-r--r-- | doc/APIchanges | 3 | ||||
-rw-r--r-- | libavcodec/avcodec.h | 12 | ||||
-rw-r--r-- | libavcodec/options.c | 1 | ||||
-rw-r--r-- | libavcodec/utils.c | 4 | ||||
-rw-r--r-- | libavcodec/version.h | 4 |
5 files changed, 22 insertions, 2 deletions
diff --git a/doc/APIchanges b/doc/APIchanges index 5707d1397a..fd4bbb1307 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,9 @@ libavutil: 2012-10-22 API changes, most recent first: +2012-12-15 - xxxxxxx - lavc 54.80.100 - avcodec.h + Add pkt_size field to AVFrame. + 2012-11-25 - xxxxxxx - lavu 52.9.100 - opt.h Add the following convenience functions to opt.h: av_opt_get_image_size diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index e432040b1d..5865aa3a7e 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1467,6 +1467,16 @@ typedef struct AVFrame { * - decoding: Read by user. */ int64_t channels; + + /** + * size of the corresponding packet containing the compressed + * frame. It must be accessed using av_frame_get_pkt_size() and + * av_frame_set_pkt_size(). + * It is set to a negative value if unknown. + * - encoding: unused + * - decoding: set by libavcodec, read by user. + */ + int pkt_size; } AVFrame; /** @@ -1490,6 +1500,8 @@ 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); +int av_frame_get_pkt_size(const AVFrame *frame); +void av_frame_set_pkt_size(AVFrame *frame, int val); struct AVCodecInternal; diff --git a/libavcodec/options.c b/libavcodec/options.c index 0da0db4806..a922365a17 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -248,6 +248,7 @@ const AVClass *avcodec_get_class(void) static const AVOption frame_options[]={ {"best_effort_timestamp", "", FOFFSET(best_effort_timestamp), AV_OPT_TYPE_INT64, {.i64 = AV_NOPTS_VALUE }, INT64_MIN, INT64_MAX, 0}, {"pkt_pos", "", FOFFSET(pkt_pos), AV_OPT_TYPE_INT64, {.i64 = -1 }, INT64_MIN, INT64_MAX, 0}, +{"pkt_size", "", FOFFSET(pkt_size), AV_OPT_TYPE_INT64, {.i64 = -1 }, INT64_MIN, INT64_MAX, 0}, {"sample_aspect_ratio", "", FOFFSET(sample_aspect_ratio), AV_OPT_TYPE_RATIONAL, {.dbl = 0 }, 0, INT_MAX, 0}, {"width", "", FOFFSET(width), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, 0}, {"height", "", FOFFSET(height), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, 0}, diff --git a/libavcodec/utils.c b/libavcodec/utils.c index dcf81e6351..abd930d746 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -512,10 +512,12 @@ void ff_init_buffer_info(AVCodecContext *s, AVFrame *frame) frame->pkt_pts = s->pkt->pts; frame->pkt_pos = s->pkt->pos; frame->pkt_duration = s->pkt->duration; + frame->pkt_size = s->pkt->size; } else { frame->pkt_pts = AV_NOPTS_VALUE; frame->pkt_pos = -1; frame->pkt_duration = 0; + frame->pkt_size = -1; } frame->reordered_opaque = s->reordered_opaque; @@ -677,6 +679,7 @@ void avcodec_get_frame_defaults(AVFrame *frame) frame->best_effort_timestamp = AV_NOPTS_VALUE; frame->pkt_duration = 0; frame->pkt_pos = -1; + frame->pkt_size = -1; frame->key_frame = 1; frame->sample_aspect_ratio = (AVRational) {0, 1 }; frame->format = -1; /* unknown */ @@ -723,6 +726,7 @@ MAKE_ACCESSORS(AVFrame, frame, int, channels) MAKE_ACCESSORS(AVFrame, frame, int, sample_rate) MAKE_ACCESSORS(AVFrame, frame, AVDictionary *, metadata) MAKE_ACCESSORS(AVFrame, frame, int, decode_error_flags) +MAKE_ACCESSORS(AVFrame, frame, int, pkt_size) MAKE_ACCESSORS(AVCodecContext, codec, AVRational, pkt_timebase) MAKE_ACCESSORS(AVCodecContext, codec, const AVCodecDescriptor *, codec_descriptor) diff --git a/libavcodec/version.h b/libavcodec/version.h index bea75d96b3..f980fed78f 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,8 +29,8 @@ #include "libavutil/avutil.h" #define LIBAVCODEC_VERSION_MAJOR 54 -#define LIBAVCODEC_VERSION_MINOR 79 -#define LIBAVCODEC_VERSION_MICRO 102 +#define LIBAVCODEC_VERSION_MINOR 80 +#define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ |