[FFmpeg-cvslog] frame: add a cropping rectangle to AVFrame

Anton Khirnov git at videolan.org
Mon May 8 21:46:38 EEST 2017


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Dec 18 12:30:27 2016 +0100| [52627248e49e58eb4b78e4fcda90a64f4c476ea3] | committer: Anton Khirnov

frame: add a cropping rectangle to AVFrame

Extend the width/height doxy to clarify that it should store coded
values.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=52627248e49e58eb4b78e4fcda90a64f4c476ea3
---

 doc/APIchanges      |  4 ++++
 libavutil/frame.c   |  4 ++++
 libavutil/frame.h   | 28 +++++++++++++++++++++++++++-
 libavutil/version.h |  2 +-
 4 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index 942337903f..ba137650b6 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,10 @@ libavutil:     2015-08-28
 
 API changes, most recent first:
 
+2016-xx-xx - xxxxxxx - lavu 55.30.0 - frame.h
+  Add AVFrame.crop_left/right/top/bottom fields for attaching cropping
+  information to video frames.
+
 2016-xx-xx - xxxxxxx
   Change av_sha_update() and av_md5_sum()/av_md5_update() length
   parameter type to size_t at next major bump.
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 1c14f5f03f..aafaa57d8b 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -390,6 +390,10 @@ int av_frame_copy_props(AVFrame *dst, const AVFrame *src)
     dst->key_frame              = src->key_frame;
     dst->pict_type              = src->pict_type;
     dst->sample_aspect_ratio    = src->sample_aspect_ratio;
+    dst->crop_top               = src->crop_top;
+    dst->crop_bottom            = src->crop_bottom;
+    dst->crop_left              = src->crop_left;
+    dst->crop_right             = src->crop_right;
     dst->pts                    = src->pts;
     dst->repeat_pict            = src->repeat_pict;
     dst->interlaced_frame       = src->interlaced_frame;
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 4052199fd3..c718f7bd62 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -25,6 +25,7 @@
 #ifndef AVUTIL_FRAME_H
 #define AVUTIL_FRAME_H
 
+#include <stddef.h>
 #include <stdint.h>
 
 #include "avutil.h"
@@ -180,9 +181,18 @@ typedef struct AVFrame {
     uint8_t **extended_data;
 
     /**
-     * width and height of the video frame
+     * @name Video dimensions
+     * Video frames only. The coded dimensions (in pixels) of the video frame,
+     * i.e. the size of the rectangle that contains some well-defined values.
+     *
+     * @note The part of the frame intended for display/presentation is further
+     * restricted by the @ref cropping "Cropping rectangle".
+     * @{
      */
     int width, height;
+    /**
+     * @}
+     */
 
     /**
      * number of audio samples (per channel) described by this frame
@@ -369,6 +379,22 @@ typedef struct AVFrame {
      * AVHWFramesContext describing the frame.
      */
     AVBufferRef *hw_frames_ctx;
+
+    /**
+     * @anchor cropping
+     * @name Cropping
+     * Video frames only. The number of pixels to discard from the the
+     * top/bottom/left/right border of the frame to obtain the sub-rectangle of
+     * the frame intended for presentation.
+     * @{
+     */
+    size_t crop_top;
+    size_t crop_bottom;
+    size_t crop_left;
+    size_t crop_right;
+    /**
+     * @}
+     */
 } AVFrame;
 
 /**
diff --git a/libavutil/version.h b/libavutil/version.h
index 3733fea810..7856a0acc3 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -54,7 +54,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR 55
-#define LIBAVUTIL_VERSION_MINOR 29
+#define LIBAVUTIL_VERSION_MINOR 30
 #define LIBAVUTIL_VERSION_MICRO  0
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \



More information about the ffmpeg-cvslog mailing list