diff options
author | Roger Pau Monné <roger.pau@entel.upc.edu> | 2011-04-16 10:09:15 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2011-04-26 07:42:13 +0200 |
commit | 10d39405fa82473367e1ba1ed3c4ecbeca2a7986 (patch) | |
tree | 39b47229245487cee4bcff9af1211100437ac915 | |
parent | 7a11c82fb760619d0e17ca234381b50d6c675cc0 (diff) | |
download | ffmpeg-10d39405fa82473367e1ba1ed3c4ecbeca2a7986.tar.gz |
lavfi: add key_frame and pict_type to AVFilterBufferRefVideo.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r-- | cmdutils.c | 2 | ||||
-rw-r--r-- | doc/APIchanges | 3 | ||||
-rw-r--r-- | libavfilter/avfilter.h | 4 | ||||
-rw-r--r-- | libavfilter/vsrc_buffer.c | 4 |
4 files changed, 12 insertions, 1 deletions
diff --git a/cmdutils.c b/cmdutils.c index d15aba0635..9da07223f5 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -922,6 +922,8 @@ int get_filtered_video_frame(AVFilterContext *ctx, AVFrame *frame, memcpy(frame->linesize, picref->linesize, sizeof(frame->linesize)); frame->interlaced_frame = picref->video->interlaced; frame->top_field_first = picref->video->top_field_first; + frame->key_frame = picref->video->key_frame; + frame->pict_type = picref->video->pict_type; return 1; } diff --git a/doc/APIchanges b/doc/APIchanges index 6347233dc4..3c20e91b4c 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -13,6 +13,9 @@ libavutil: 2011-04-18 API changes, most recent first: +2011-04-xx - xxxxxx - lavfi 2.3.0 - avfilter.h + Add pict_type and key_frame fields to AVFilterBufferRefVideo. + 2011-04-xx - xxxxxx - lavfi 2.2.0 - vsrc_buffer Add sample_aspect_ratio fields to vsrc_buffer arguments diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index a1eff6e739..cbc0238aa3 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -26,7 +26,7 @@ #include "libavutil/samplefmt.h" #define LIBAVFILTER_VERSION_MAJOR 2 -#define LIBAVFILTER_VERSION_MINOR 2 +#define LIBAVFILTER_VERSION_MINOR 3 #define LIBAVFILTER_VERSION_MICRO 0 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ @@ -115,6 +115,8 @@ typedef struct AVFilterBufferRefVideoProps { AVRational pixel_aspect; ///< pixel aspect ratio int interlaced; ///< is frame interlaced int top_field_first; ///< field order + int pict_type; ///< Picture type of the frame + int key_frame; ///< 1 -> keyframe, 0-> not } AVFilterBufferRefVideoProps; /** diff --git a/libavfilter/vsrc_buffer.c b/libavfilter/vsrc_buffer.c index dea41de721..6567279667 100644 --- a/libavfilter/vsrc_buffer.c +++ b/libavfilter/vsrc_buffer.c @@ -54,6 +54,8 @@ int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, memcpy(c->frame.linesize, frame->linesize, sizeof(frame->linesize)); c->frame.interlaced_frame= frame->interlaced_frame; c->frame.top_field_first = frame->top_field_first; + c->frame.key_frame = frame->key_frame; + c->frame.pict_type = frame->pict_type; c->pts = pts; c->pixel_aspect = pixel_aspect; c->has_frame = 1; @@ -133,6 +135,8 @@ static int request_frame(AVFilterLink *link) picref->video->pixel_aspect = c->pixel_aspect; picref->video->interlaced = c->frame.interlaced_frame; picref->video->top_field_first = c->frame.top_field_first; + picref->video->key_frame = c->frame.key_frame; + picref->video->pict_type = c->frame.pict_type; avfilter_start_frame(link, avfilter_ref_buffer(picref, ~0)); avfilter_draw_slice(link, 0, link->h, 1); avfilter_end_frame(link); |