From 8d6ce5e8b5d7df344f83c34a08c5c8205bbd2f61 Mon Sep 17 00:00:00 2001 From: Justin Maggard Date: Tue, 22 Oct 2013 19:02:02 -0700 Subject: [PATCH] Handle new H.264 profile in recent ffmpeg versions. --- libav.h | 25 +++++++++++++++++++++++++ metadata.c | 23 +++-------------------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/libav.h b/libav.h index 7b46093..34c174a 100644 --- a/libav.h +++ b/libav.h @@ -41,3 +41,28 @@ #include #endif +#ifndef FF_PROFILE_H264_BASELINE +#define FF_PROFILE_H264_BASELINE 66 +#endif +#ifndef FF_PROFILE_H264_CONSTRAINED_BASELINE +#define FF_PROFILE_H264_CONSTRAINED_BASELINE 578 +#endif +#ifndef FF_PROFILE_H264_MAIN +#define FF_PROFILE_H264_MAIN 77 +#endif +#ifndef FF_PROFILE_H264_HIGH +#define FF_PROFILE_H264_HIGH 100 +#endif +#ifndef FF_PROFILE_SKIP +#define FF_PROFILE_SKIP -100 +#endif + +#if LIBAVCODEC_VERSION_MAJOR < 53 +#define AVMEDIA_TYPE_AUDIO CODEC_TYPE_AUDIO +#define AVMEDIA_TYPE_VIDEO CODEC_TYPE_VIDEO +#endif + +#if LIBAVUTIL_VERSION_INT < ((50<<16)+(13<<8)+0) +#define av_strerror(x, y, z) snprintf(y, z, "%d", x) +#endif + diff --git a/metadata.c b/metadata.c index ecb7ce2..a322c2b 100644 --- a/metadata.c +++ b/metadata.c @@ -44,26 +44,6 @@ #include "sql.h" #include "log.h" -#ifndef FF_PROFILE_H264_BASELINE -#define FF_PROFILE_H264_BASELINE 66 -#endif -#ifndef FF_PROFILE_H264_MAIN -#define FF_PROFILE_H264_MAIN 77 -#endif -#ifndef FF_PROFILE_H264_HIGH -#define FF_PROFILE_H264_HIGH 100 -#endif -#define FF_PROFILE_SKIP -100 - -#if LIBAVCODEC_VERSION_MAJOR < 53 -#define AVMEDIA_TYPE_AUDIO CODEC_TYPE_AUDIO -#define AVMEDIA_TYPE_VIDEO CODEC_TYPE_VIDEO -#endif - -#if LIBAVUTIL_VERSION_INT < ((50<<16)+(13<<8)+0) -#define av_strerror(x, y, z) snprintf(y, z, "%d", x) -#endif - #define FLAG_TITLE 0x00000001 #define FLAG_ARTIST 0x00000002 #define FLAG_ALBUM 0x00000004 @@ -1042,6 +1022,7 @@ GetVideoMetadata(const char *path, char *name) switch( vc->profile ) { case FF_PROFILE_H264_BASELINE: + case FF_PROFILE_H264_CONSTRAINED_BASELINE: off += sprintf(m.dlna_pn+off, "BL_"); if( vc->width <= 352 && vc->height <= 288 && @@ -1064,6 +1045,7 @@ GetVideoMetadata(const char *path, char *name) case FF_PROFILE_H264_MAIN: off += sprintf(m.dlna_pn+off, "MP_"); if( vc->profile != FF_PROFILE_H264_BASELINE && + vc->profile != FF_PROFILE_H264_CONSTRAINED_BASELINE && vc->profile != FF_PROFILE_H264_MAIN ) { DPRINTF(E_DEBUG, L_METADATA, "Unknown AVC profile %d; assuming MP. [%s]\n", @@ -1167,6 +1149,7 @@ GetVideoMetadata(const char *path, char *name) switch( vc->profile ) { case FF_PROFILE_H264_BASELINE: + case FF_PROFILE_H264_CONSTRAINED_BASELINE: if( vc->width <= 352 && vc->height <= 288 ) {