summaryrefslogtreecommitdiff
path: root/pjmedia/src/pjmedia-codec
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2012-04-26 07:27:06 +0000
committerNanang Izzuddin <nanang@teluu.com>2012-04-26 07:27:06 +0000
commit8fd6c2b77521127707acbd83df86dc1adad2dd65 (patch)
treed0c5a0a30ea8f3d6eeb65ae483f686fa05e8c393 /pjmedia/src/pjmedia-codec
parent5083616f42825a0a18882a3d2653a71e6c9040ae (diff)
Misc (re #1446): Updated ffmpeg compatibility issues, e.g: av_set_int() return code not match to av_opt_set_int(), update libavcodec version to at least 53.61 for av_opt_set*() usage.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4089 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src/pjmedia-codec')
-rw-r--r--pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c b/pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c
index fcb7ed50..04dc1f3d 100644
--- a/pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c
+++ b/pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c
@@ -52,14 +52,12 @@
# include <libavutil/opt.h>
#endif
+
/* Various compatibility */
+
#if LIBAVCODEC_VER_AT_LEAST(53,20)
-# define AV_OPT_SET(obj,name,val,opt) av_opt_set(obj,name,val,opt)
-# define AV_OPT_SET_INT(obj,name,val) av_opt_set_int(obj,name,val,0)
# define AVCODEC_OPEN(ctx,c) avcodec_open2(ctx,c,NULL)
#else
-# define AV_OPT_SET(obj,name,val,opt) av_set_string3(obj,name,val,opt,NULL)
-# define AV_OPT_SET_INT(obj,name,val) av_set_int(obj,name,val)
# define AVCODEC_OPEN(ctx,c) avcodec_open(ctx,c)
#endif
@@ -69,8 +67,12 @@
* (e.g: H263, H264).
*/
# define AVCODEC_HAS_ENCODE(c) (c->encode || c->encode2)
+# define AV_OPT_SET(obj,name,val,opt) (av_opt_set(obj,name,val,opt)==0)
+# define AV_OPT_SET_INT(obj,name,val) (av_opt_set_int(obj,name,val,0)==0)
#else
# define AVCODEC_HAS_ENCODE(c) (c->encode)
+# define AV_OPT_SET(obj,name,val,opt) (av_set_string3(obj,name,val,opt,NULL)==0)
+# define AV_OPT_SET_INT(obj,name,val) (av_set_int(obj,name,val)!=NULL)
#endif
#define AVCODEC_HAS_DECODE(c) (c->decode)
@@ -399,10 +401,10 @@ static pj_status_t h264_preopen(ffmpeg_private *ff)
default:
break;
}
- if (profile &&
- AV_OPT_SET(ctx->priv_data, "profile", profile, 0))
+ if (profile && !AV_OPT_SET(ctx->priv_data, "profile", profile, 0))
{
- PJ_LOG(3, (THIS_FILE, "Failed to set H264 profile"));
+ PJ_LOG(3, (THIS_FILE, "Failed to set H264 profile to '%s'",
+ profile));
}
/* Apply profile constraint bits. */
@@ -432,10 +434,10 @@ static pj_status_t h264_preopen(ffmpeg_private *ff)
/* Misc x264 settings (performance, quality, latency, etc).
* Let's just use the x264 predefined preset & tune.
*/
- if (AV_OPT_SET(ctx->priv_data, "preset", "veryfast", 0)) {
+ if (!AV_OPT_SET(ctx->priv_data, "preset", "veryfast", 0)) {
PJ_LOG(3, (THIS_FILE, "Failed to set x264 preset 'veryfast'"));
}
- if (AV_OPT_SET(ctx->priv_data, "tune", "animation+zerolatency", 0)) {
+ if (!AV_OPT_SET(ctx->priv_data, "tune", "animation+zerolatency", 0)) {
PJ_LOG(3, (THIS_FILE, "Failed to set x264 tune 'zerolatency'"));
}
}