[FFmpeg-cvslog] lavc: deprecate FF_*_TYPE macros in favor of AV_PICTURE_TYPE_* enums
Stefano Sabatini
git at videolan.org
Wed Apr 27 03:56:15 CEST 2011
ffmpeg | branch: master | Stefano Sabatini <stefano.sabatini-lala at poste.it> | Sat Apr 23 13:38:50 2011 +0200| [bebe72f4a05d338e04ae9ca1e9c6b72749b488aa] | committer: Anton Khirnov
lavc: deprecate FF_*_TYPE macros in favor of AV_PICTURE_TYPE_* enums
Also deprecate av_get_pict_type_char() in favor of
av_get_picture_type_char().
The new enum and av_get_picture_type_char() are defined in libavutil.
This allows the use in libavfilter without the need to link against
libavcodec.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala at poste.it>
Signed-off-by: Anton Khirnov <anton at khirnov.net>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bebe72f4a05d338e04ae9ca1e9c6b72749b488aa
---
doc/APIchanges | 5 +++++
libavcodec/avcodec.h | 24 +++++++++++++++---------
libavcodec/utils.c | 13 +++----------
libavcodec/version.h | 5 ++++-
libavfilter/avfilter.h | 4 ++--
libavutil/avutil.h | 21 ++++++++++++++++++++-
libavutil/utils.c | 14 ++++++++++++++
7 files changed, 63 insertions(+), 23 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index 3c20e91..1e29aeb 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,11 @@ libavutil: 2011-04-18
API changes, most recent first:
+2011-04-XX - XXXXXXX - lavu 51.1.0 - avutil.h
+ Add AVPictureType enum and av_get_picture_type_char(), deprecate
+ FF_*_TYPE defines and av_get_pict_type_char() defined in
+ libavcodec/avcodec.h.
+
2011-04-xx - xxxxxx - lavfi 2.3.0 - avfilter.h
Add pict_type and key_frame fields to AVFilterBufferRefVideo.
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 91edaf0..eb5c5b3 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -762,7 +762,7 @@ typedef struct AVPanScan{
* - encoding: Set by libavcodec. for coded_picture (and set by user for input).\
* - decoding: Set by libavcodec.\
*/\
- int pict_type;\
+ enum AVPictureType pict_type;\
\
/**\
* presentation timestamp in time_base units (time when frame should be shown to user)\
@@ -1004,14 +1004,16 @@ typedef struct AVPanScan{
#define FF_BUFFER_TYPE_SHARED 4 ///< Buffer from somewhere else; don't deallocate image (data/base), all other tables are not shared.
#define FF_BUFFER_TYPE_COPY 8 ///< Just a (modified) copy of some other buffer, don't deallocate anything.
-
-#define FF_I_TYPE 1 ///< Intra
-#define FF_P_TYPE 2 ///< Predicted
-#define FF_B_TYPE 3 ///< Bi-dir predicted
-#define FF_S_TYPE 4 ///< S(GMC)-VOP MPEG4
-#define FF_SI_TYPE 5 ///< Switching Intra
-#define FF_SP_TYPE 6 ///< Switching Predicted
-#define FF_BI_TYPE 7
+#if FF_API_OLD_FF_PICT_TYPES
+/* DEPRECATED, directly use the AV_PICTURE_TYPE_* enum values */
+#define FF_I_TYPE AV_PICTURE_TYPE_I ///< Intra
+#define FF_P_TYPE AV_PICTURE_TYPE_P ///< Predicted
+#define FF_B_TYPE AV_PICTURE_TYPE_B ///< Bi-dir predicted
+#define FF_S_TYPE AV_PICTURE_TYPE_S ///< S(GMC)-VOP MPEG4
+#define FF_SI_TYPE AV_PICTURE_TYPE_SI ///< Switching Intra
+#define FF_SP_TYPE AV_PICTURE_TYPE_SP ///< Switching Predicted
+#define FF_BI_TYPE AV_PICTURE_TYPE_BI
+#endif
#define FF_BUFFER_HINTS_VALID 0x01 // Buffer hints value is meaningful (if 0 ignore).
#define FF_BUFFER_HINTS_READABLE 0x02 // Codec will read from buffer.
@@ -3766,13 +3768,17 @@ void avcodec_default_free_buffers(AVCodecContext *s);
/* misc useful functions */
+#if FF_API_OLD_FF_PICT_TYPES
/**
* Return a single letter to describe the given picture type pict_type.
*
* @param[in] pict_type the picture type
* @return A single character representing the picture type.
+ * @deprecated Use av_get_picture_type_char() instead.
*/
+attribute_deprecated
char av_get_pict_type_char(int pict_type);
+#endif
/**
* Return codec bits per sample.
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index d60e236..7e2847a 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1030,18 +1030,11 @@ void avcodec_default_free_buffers(AVCodecContext *s){
s->internal_buffer_count=0;
}
+#if FF_API_OLD_FF_PICT_TYPES
char av_get_pict_type_char(int pict_type){
- switch(pict_type){
- case FF_I_TYPE: return 'I';
- case FF_P_TYPE: return 'P';
- case FF_B_TYPE: return 'B';
- case FF_S_TYPE: return 'S';
- case FF_SI_TYPE:return 'i';
- case FF_SP_TYPE:return 'p';
- case FF_BI_TYPE:return 'b';
- default: return '?';
- }
+ return av_get_picture_type_char(pict_type);
}
+#endif
int av_get_bits_per_sample(enum CodecID codec_id){
switch(codec_id){
diff --git a/libavcodec/version.h b/libavcodec/version.h
index d384d54..418e275 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -22,7 +22,7 @@
#define LIBAVCODEC_VERSION_MAJOR 53
#define LIBAVCODEC_VERSION_MINOR 1
-#define LIBAVCODEC_VERSION_MICRO 0
+#define LIBAVCODEC_VERSION_MICRO 1
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
@@ -59,5 +59,8 @@
#ifndef FF_API_THREAD_INIT
#define FF_API_THREAD_INIT (LIBAVCODEC_VERSION_MAJOR < 54)
#endif
+#ifndef FF_API_OLD_FF_PICT_TYPES
+#define FF_API_OLD_FF_PICT_TYPES (LIBAVCODEC_VERSION_MAJOR < 54)
+#endif
#endif /* AVCODEC_VERSION_H */
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index cbc0238..8947baa 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -27,7 +27,7 @@
#define LIBAVFILTER_VERSION_MAJOR 2
#define LIBAVFILTER_VERSION_MINOR 3
-#define LIBAVFILTER_VERSION_MICRO 0
+#define LIBAVFILTER_VERSION_MICRO 1
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \
@@ -115,7 +115,7 @@ 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
+ enum AVPictureType pict_type; ///< picture type of the frame
int key_frame; ///< 1 -> keyframe, 0-> not
} AVFilterBufferRefVideoProps;
diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index abbdd06..43f0815 100644
--- a/libavutil/avutil.h
+++ b/libavutil/avutil.h
@@ -40,7 +40,7 @@
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
#define LIBAVUTIL_VERSION_MAJOR 51
-#define LIBAVUTIL_VERSION_MINOR 0
+#define LIBAVUTIL_VERSION_MINOR 1
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
@@ -94,6 +94,25 @@ enum AVMediaType {
#define AV_TIME_BASE 1000000
#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
+enum AVPictureType {
+ AV_PICTURE_TYPE_I = 1, ///< Intra
+ AV_PICTURE_TYPE_P, ///< Predicted
+ AV_PICTURE_TYPE_B, ///< Bi-dir predicted
+ AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG4
+ AV_PICTURE_TYPE_SI, ///< Switching Intra
+ AV_PICTURE_TYPE_SP, ///< Switching Predicted
+ AV_PICTURE_TYPE_BI, ///< BI type
+};
+
+/**
+ * Return a single letter to describe the given picture type
+ * pict_type.
+ *
+ * @param[in] pict_type the picture type @return a single character
+ * representing the picture type, '?' if pict_type is unknown
+ */
+char av_get_picture_type_char(enum AVPictureType pict_type);
+
#include "common.h"
#include "error.h"
#include "mathematics.h"
diff --git a/libavutil/utils.c b/libavutil/utils.c
index 042e735..9b18c97 100644
--- a/libavutil/utils.c
+++ b/libavutil/utils.c
@@ -39,3 +39,17 @@ const char *avutil_license(void)
#define LICENSE_PREFIX "libavutil license: "
return LICENSE_PREFIX LIBAV_LICENSE + sizeof(LICENSE_PREFIX) - 1;
}
+
+char av_get_picture_type_char(enum AVPictureType pict_type)
+{
+ switch (pict_type) {
+ case AV_PICTURE_TYPE_I: return 'I';
+ case AV_PICTURE_TYPE_P: return 'P';
+ case AV_PICTURE_TYPE_B: return 'B';
+ case AV_PICTURE_TYPE_S: return 'S';
+ case AV_PICTURE_TYPE_SI: return 'i';
+ case AV_PICTURE_TYPE_SP: return 'p';
+ case AV_PICTURE_TYPE_BI: return 'b';
+ default: return '?';
+ }
+}
More information about the ffmpeg-cvslog
mailing list