[FFmpeg-cvslog] r26259 - in trunk: doc/APIchanges libavcodec/avcodec.h libavcodec/utils.c

cehoyos subversion
Fri Jan 7 23:27:26 CET 2011


Author: cehoyos
Date: Fri Jan  7 23:27:26 2011
New Revision: 26259

Log:
Add av_get_profile_name() to get profile names.

Patch by Anssi Hannula, anssi d hannula a iki d fi

Modified:
   trunk/doc/APIchanges
   trunk/libavcodec/avcodec.h
   trunk/libavcodec/utils.c

Modified: trunk/doc/APIchanges
==============================================================================
--- trunk/doc/APIchanges	Fri Jan  7 22:54:52 2011	(r26258)
+++ trunk/doc/APIchanges	Fri Jan  7 23:27:26 2011	(r26259)
@@ -13,6 +13,9 @@ libavutil:   2009-03-08
 
 API changes, most recent first:
 
+2011-01-XX - r26XXX - lavc 52.104.0 - av_get_profile_name()
+  Add av_get_profile_name to libavcodec/avcodec.h.
+
 2010-12-27 - r26108 - lavfi 1.71.0 - AV_PERM_NEG_LINESIZES
   Add AV_PERM_NEG_LINESIZES in avfilter.h.
 

Modified: trunk/libavcodec/avcodec.h
==============================================================================
--- trunk/libavcodec/avcodec.h	Fri Jan  7 22:54:52 2011	(r26258)
+++ trunk/libavcodec/avcodec.h	Fri Jan  7 23:27:26 2011	(r26259)
@@ -32,8 +32,8 @@
 #include "libavutil/cpu.h"
 
 #define LIBAVCODEC_VERSION_MAJOR 52
-#define LIBAVCODEC_VERSION_MINOR 103
-#define LIBAVCODEC_VERSION_MICRO  1
+#define LIBAVCODEC_VERSION_MINOR 104
+#define LIBAVCODEC_VERSION_MICRO  0
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                LIBAVCODEC_VERSION_MINOR, \
@@ -2794,6 +2794,14 @@ typedef struct AVCodecContext {
 } AVCodecContext;
 
 /**
+ * AVProfile.
+ */
+typedef struct AVProfile {
+    int profile;
+    const char *name; ///< short name for the profile
+} AVProfile;
+
+/**
  * AVCodec.
  */
 typedef struct AVCodec {
@@ -2834,6 +2842,7 @@ typedef struct AVCodec {
     const int64_t *channel_layouts;         ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
     uint8_t max_lowres;                     ///< maximum value for lowres supported by the decoder
     AVClass *priv_class;                    ///< AVClass for the private context
+    const AVProfile *profiles;              ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
 } AVCodec;
 
 /**
@@ -3394,6 +3403,15 @@ AVCodec *avcodec_find_decoder_by_name(co
 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
 
 /**
+ * Return a name for the specified profile, if available.
+ *
+ * @param codec the codec that is searched for the given profile
+ * @param profile the profile value for which a name is requested
+ * @return A name for the profile if found, NULL otherwise.
+ */
+const char *av_get_profile_name(const AVCodec *codec, int profile);
+
+/**
  * Set the fields of the given AVCodecContext to default values.
  *
  * @param s The AVCodecContext of which the fields should be set to default values.

Modified: trunk/libavcodec/utils.c
==============================================================================
--- trunk/libavcodec/utils.c	Fri Jan  7 22:54:52 2011	(r26258)
+++ trunk/libavcodec/utils.c	Fri Jan  7 23:27:26 2011	(r26259)
@@ -966,6 +966,19 @@ void avcodec_string(char *buf, int buf_s
     }
 }
 
+const char *av_get_profile_name(const AVCodec *codec, int profile)
+{
+    const AVProfile *p;
+    if (profile == FF_PROFILE_UNKNOWN || !codec->profiles)
+        return NULL;
+
+    for (p = codec->profiles; p->profile != FF_PROFILE_UNKNOWN; p++)
+        if (p->profile == profile)
+            return p->name;
+
+    return NULL;
+}
+
 unsigned avcodec_version( void )
 {
   return LIBAVCODEC_VERSION_INT;



More information about the ffmpeg-cvslog mailing list