summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2014-04-01 09:47:15 +0000
committerNanang Izzuddin <nanang@teluu.com>2014-04-01 09:47:15 +0000
commita8c34fe3dba640ec984c892f4b44dbee14a4ef3d (patch)
treefd0224d634b43c276731ac6145e121f90a97b34b /pjmedia
parent27e40a66ff8694f41d78ef3b1df5835105aa6106 (diff)
Re #1750:
- Replaced "enum CodecID" with "unsigned" (previous fix raised compile error for some older ffmpeg versions). - Handled PIX_FMT_GBR24P hassle. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4808 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/src/pjmedia/ffmpeg_util.c29
-rw-r--r--pjmedia/src/pjmedia/ffmpeg_util.h8
2 files changed, 18 insertions, 19 deletions
diff --git a/pjmedia/src/pjmedia/ffmpeg_util.c b/pjmedia/src/pjmedia/ffmpeg_util.c
index da2d5a19..cfc4d56c 100644
--- a/pjmedia/src/pjmedia/ffmpeg_util.c
+++ b/pjmedia/src/pjmedia/ffmpeg_util.c
@@ -26,13 +26,16 @@
#include "ffmpeg_util.h"
#include <libavformat/avformat.h>
-#define MAKE_VER(mj,mn,mi) ((mj << 16) | (mn << 8) | (mi << 0))
-#define VER_AT_LEAST(mj,mn,mi) (MAKE_VER(LIBAVUTIL_VERSION_MAJOR, \
- LIBAVUTIL_VERSION_MINOR, \
- LIBAVUTIL_VERSION_MICRO) >= \
- MAKE_VER(mj,mn,mi))
-
-
+/* PIX_FMT_GBR24P hassle:
+ * - PIX_FMT_GBR24P is introduced (perhaps in avutil 51.20.1)
+ * - suddenly PIX_FMT_GBR24P is replaced by PIX_FMT_GBRP, no alias defined,
+ * so PIX_FMT_GBR24P is just gone! (perhaps in avutil 51.42.0)
+ * - then lately PIX_FMT_GBR24P is defined as PIX_FMT_GBRP
+ */
+#if !defined(PIX_FMT_GBR24P) && \
+ LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51,42,0)
+# define PIX_FMT_GBR24P PIX_FMT_GBRP
+#endif
/* Conversion table between pjmedia_format_id and PixelFormat */
static const struct ffmpeg_fmt_table_t
@@ -44,7 +47,7 @@ static const struct ffmpeg_fmt_table_t
{ PJMEDIA_FORMAT_RGBA, PIX_FMT_RGBA},
{ PJMEDIA_FORMAT_RGB24,PIX_FMT_BGR24},
{ PJMEDIA_FORMAT_BGRA, PIX_FMT_BGRA},
-#if VER_AT_LEAST(51,20,1)
+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51, 20, 1)
{ PJMEDIA_FORMAT_GBRP, PIX_FMT_GBR24P},
#endif
@@ -62,7 +65,7 @@ static const struct ffmpeg_fmt_table_t
static const struct ffmpeg_codec_table_t
{
pjmedia_format_id id;
- enum CodecID codec_id;
+ unsigned codec_id;
} ffmpeg_codec_table[] =
{
{PJMEDIA_FORMAT_H261, CODEC_ID_H261},
@@ -167,7 +170,7 @@ pj_status_t PixelFormat_to_pjmedia_format_id(enum PixelFormat pf,
}
pj_status_t pjmedia_format_id_to_CodecID(pjmedia_format_id fmt_id,
- enum CodecID *codec_id)
+ unsigned *codec_id)
{
unsigned i;
for (i=0; i<PJ_ARRAY_SIZE(ffmpeg_codec_table); ++i) {
@@ -178,17 +181,17 @@ pj_status_t pjmedia_format_id_to_CodecID(pjmedia_format_id fmt_id,
}
}
- *codec_id = PIX_FMT_NONE;
+ *codec_id = (unsigned)PIX_FMT_NONE;
return PJ_ENOTFOUND;
}
-pj_status_t CodecID_to_pjmedia_format_id(enum CodecID codec_id,
+pj_status_t CodecID_to_pjmedia_format_id(unsigned codec_id,
pjmedia_format_id *fmt_id)
{
unsigned i;
for (i=0; i<PJ_ARRAY_SIZE(ffmpeg_codec_table); ++i) {
const struct ffmpeg_codec_table_t *t = &ffmpeg_codec_table[i];
- if (t->codec_id == codec_id) {
+ if ((unsigned)t->codec_id == codec_id) {
if (fmt_id) *fmt_id = t->id;
return PJ_SUCCESS;
}
diff --git a/pjmedia/src/pjmedia/ffmpeg_util.h b/pjmedia/src/pjmedia/ffmpeg_util.h
index 4897f513..884ac7e9 100644
--- a/pjmedia/src/pjmedia/ffmpeg_util.h
+++ b/pjmedia/src/pjmedia/ffmpeg_util.h
@@ -37,10 +37,6 @@
#include <libavutil/avutil.h>
#include <libavcodec/avcodec.h>
-#ifndef CodecID
- #define CodecID AVCodecID
-#endif
-
void pjmedia_ffmpeg_add_ref();
void pjmedia_ffmpeg_dec_ref();
@@ -51,9 +47,9 @@ pj_status_t PixelFormat_to_pjmedia_format_id(enum PixelFormat pf,
pjmedia_format_id *fmt_id);
pj_status_t pjmedia_format_id_to_CodecID(pjmedia_format_id fmt_id,
- enum CodecID *codec_id);
+ unsigned *codec_id);
-pj_status_t CodecID_to_pjmedia_format_id(enum CodecID codec_id,
+pj_status_t CodecID_to_pjmedia_format_id(unsigned codec_id,
pjmedia_format_id *fmt_id);
#endif /* __PJMEDIA_FFMPEG_UTIL_H__ */