diff options
author | Roger Pau Monné <roger.pau@entel.upc.edu> | 2011-04-16 10:09:15 +0200 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2011-04-16 10:09:15 +0200 |
commit | 09a1416db78f49fb3a39cdf5a4bd0f5c5f849ce0 (patch) | |
tree | c792cb3d3b70186fa4cf03537affaf572f1bab4b | |
parent | d3b379b95b0da8e4d612a9a1987ba6fd8f2bd8bf (diff) | |
download | ffmpeg-09a1416db78f49fb3a39cdf5a4bd0f5c5f849ce0.tar.gz |
Add key_frame and pict_type to AVFilterBufferRefVideo.
-rw-r--r-- | cmdutils.c | 2 | ||||
-rw-r--r-- | libavfilter/avfilter.h | 4 | ||||
-rw-r--r-- | libavfilter/vsrc_buffer.c | 4 |
3 files changed, 9 insertions, 1 deletions
diff --git a/cmdutils.c b/cmdutils.c index 5b7b508765..aa30962094 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -827,6 +827,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/libavfilter/avfilter.h b/libavfilter/avfilter.h index f270a370da..16c761ad52 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -26,7 +26,7 @@ #include "libavutil/samplefmt.h" #define LIBAVFILTER_VERSION_MAJOR 1 -#define LIBAVFILTER_VERSION_MINOR 78 +#define LIBAVFILTER_VERSION_MINOR 79 #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 d02b13a4b8..54ee77788d 100644 --- a/libavfilter/vsrc_buffer.c +++ b/libavfilter/vsrc_buffer.c @@ -93,6 +93,8 @@ int av_vsrc_buffer_add_frame2(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; @@ -182,6 +184,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); |