summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2012-12-14 11:58:21 +0100
committerStefano Sabatini <stefasab@gmail.com>2012-12-15 11:46:30 +0100
commit96d815fc0c71d08b9c4bd65aea021bd0760f2287 (patch)
tree5604c1d6956389eb5ca732febb983960cfd50792 /libavcodec
parenta8b3f0c5cf548f654e30c981988bb71981a3f8d3 (diff)
lavc: add pkt_size field to AVFrame
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/avcodec.h12
-rw-r--r--libavcodec/options.c1
-rw-r--r--libavcodec/utils.c4
-rw-r--r--libavcodec/version.h4
4 files changed, 19 insertions, 2 deletions
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, \