[FFmpeg-devel] [PATCH 2/6] lavu: add pkt_flags field to AVFrame.
Nicolas George
george at nsup.org
Fri Feb 21 20:50:14 CET 2014
From: Nicolas George <nicolas.george at normalesup.org>
Also fill it in lavc with the packet flags.
Signed-off-by: Nicolas George <george at nsup.org>
---
libavcodec/utils.c | 2 ++
libavutil/frame.c | 2 ++
libavutil/frame.h | 11 +++++++++++
3 files changed, 15 insertions(+)
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index d24854a..61a72ea 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -756,11 +756,13 @@ int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame)
av_frame_set_pkt_pos (frame, avctx->internal->pkt->pos);
av_frame_set_pkt_duration(frame, avctx->internal->pkt->duration);
av_frame_set_pkt_size (frame, avctx->internal->pkt->size);
+ av_frame_set_pkt_flags (frame, avctx->internal->pkt->flags);
} else {
frame->pkt_pts = AV_NOPTS_VALUE;
av_frame_set_pkt_pos (frame, -1);
av_frame_set_pkt_duration(frame, 0);
av_frame_set_pkt_size (frame, -1);
+ av_frame_set_pkt_flags (frame, 0);
}
frame->reordered_opaque = avctx->reordered_opaque;
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 75a1c28..dee51e0 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -30,6 +30,7 @@
MAKE_ACCESSORS(AVFrame, frame, int64_t, best_effort_timestamp)
MAKE_ACCESSORS(AVFrame, frame, int64_t, pkt_duration)
MAKE_ACCESSORS(AVFrame, frame, int64_t, pkt_pos)
+MAKE_ACCESSORS(AVFrame, frame, int, pkt_flags)
MAKE_ACCESSORS(AVFrame, frame, int64_t, channel_layout)
MAKE_ACCESSORS(AVFrame, frame, int, channels)
MAKE_ACCESSORS(AVFrame, frame, int, sample_rate)
@@ -471,6 +472,7 @@ int av_frame_copy_props(AVFrame *dst, const AVFrame *src)
dst->pkt_pos = src->pkt_pos;
dst->pkt_size = src->pkt_size;
dst->pkt_duration = src->pkt_duration;
+ dst->pkt_flags = src->pkt_flags;
dst->reordered_opaque = src->reordered_opaque;
dst->quality = src->quality;
dst->best_effort_timestamp = src->best_effort_timestamp;
diff --git a/libavutil/frame.h b/libavutil/frame.h
index b423f67..5f82f17 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -535,6 +535,15 @@ typedef struct AVFrame {
* Not to be accessed directly from outside libavutil
*/
AVBufferRef *qp_table_buf;
+
+ /**
+ * Flags copied from the AVPacket that was decoded to produce this frame.
+ * Not to be accessed directly from outside libavutil
+ * - encoding: unused
+ * - decoding: set and used by lavc
+ */
+ int pkt_flags;
+
} AVFrame;
/**
@@ -548,6 +557,8 @@ int64_t av_frame_get_pkt_duration (const AVFrame *frame);
void av_frame_set_pkt_duration (AVFrame *frame, int64_t val);
int64_t av_frame_get_pkt_pos (const AVFrame *frame);
void av_frame_set_pkt_pos (AVFrame *frame, int64_t val);
+int av_frame_get_pkt_flags (const AVFrame *frame);
+void av_frame_set_pkt_flags (AVFrame *frame, int val);
int64_t av_frame_get_channel_layout (const AVFrame *frame);
void av_frame_set_channel_layout (AVFrame *frame, int64_t val);
int av_frame_get_channels (const AVFrame *frame);
--
1.8.5.3
More information about the ffmpeg-devel
mailing list