summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pjmedia/src/pjmedia-codec/ffmpeg_codecs.c6
-rw-r--r--pjmedia/src/pjmedia-codec/h263_packetizer.c7
-rw-r--r--pjmedia/src/pjmedia-codec/h264_packetizer.c7
-rw-r--r--pjmedia/src/pjmedia-videodev/colorbar_dev.c5
-rw-r--r--pjmedia/src/pjmedia-videodev/dshow_dev.c4
-rw-r--r--pjmedia/src/pjmedia-videodev/dshowclasses.cpp5
-rw-r--r--pjmedia/src/pjmedia-videodev/errno.c7
-rw-r--r--pjmedia/src/pjmedia-videodev/ffmpeg_dev.c5
-rw-r--r--pjmedia/src/pjmedia-videodev/sdl_dev.c5
-rw-r--r--pjmedia/src/pjmedia-videodev/videodev.c7
-rw-r--r--pjmedia/src/pjmedia/avi_player.c6
-rw-r--r--pjmedia/src/pjmedia/endpoint.c28
-rw-r--r--pjmedia/src/pjmedia/format.c87
-rw-r--r--pjmedia/src/pjmedia/vid_codec.c6
-rw-r--r--pjmedia/src/pjmedia/vid_codec_util.c7
-rw-r--r--pjmedia/src/pjmedia/vid_port.c7
-rw-r--r--pjmedia/src/pjmedia/vid_stream.c4
-rw-r--r--pjmedia/src/pjmedia/vid_tee.c7
-rw-r--r--pjmedia/src/test/test.c6
-rw-r--r--pjmedia/src/test/test.h6
-rw-r--r--pjmedia/src/test/vid_codec_test.c5
-rw-r--r--pjmedia/src/test/vid_dev_test.c7
-rw-r--r--pjmedia/src/test/vid_port_test.c7
-rw-r--r--pjsip-apps/src/samples/aviplay.c15
-rw-r--r--pjsip-apps/src/samples/simpleua.c23
-rw-r--r--pjsip-apps/src/samples/vid_streamutil.c17
-rw-r--r--pjsip/src/pjsua-lib/pjsua_acc.c15
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c4
-rw-r--r--pjsip/src/pjsua-lib/pjsua_dump.c4
-rw-r--r--pjsip/src/pjsua-lib/pjsua_media.c7
30 files changed, 255 insertions, 71 deletions
diff --git a/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c b/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
index ddf02c1a..007905af 100644
--- a/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
+++ b/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
@@ -31,9 +31,11 @@
/*
- * Only build this file if PJMEDIA_HAS_FFMPEG_CODEC != 0
+ * Only build this file if PJMEDIA_HAS_FFMPEG_CODEC != 0 and
+ * PJMEDIA_HAS_VIDEO != 0
*/
-#if defined(PJMEDIA_HAS_FFMPEG_CODEC) && PJMEDIA_HAS_FFMPEG_CODEC != 0
+#if defined(PJMEDIA_HAS_FFMPEG_CODEC) && PJMEDIA_HAS_FFMPEG_CODEC != 0 && \
+ defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
#define THIS_FILE "ffmpeg_codecs.c"
diff --git a/pjmedia/src/pjmedia-codec/h263_packetizer.c b/pjmedia/src/pjmedia-codec/h263_packetizer.c
index 149c2e64..fd751366 100644
--- a/pjmedia/src/pjmedia-codec/h263_packetizer.c
+++ b/pjmedia/src/pjmedia-codec/h263_packetizer.c
@@ -22,6 +22,10 @@
#include <pj/errno.h>
#include <pj/string.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "h263_packetizer.c"
@@ -285,3 +289,6 @@ PJ_DEF(pj_status_t) pjmedia_h263_unpacketize (pjmedia_h263_packetizer *pktz,
return PJ_SUCCESS;
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia-codec/h264_packetizer.c b/pjmedia/src/pjmedia-codec/h264_packetizer.c
index 8eb22d6f..8d59c863 100644
--- a/pjmedia/src/pjmedia-codec/h264_packetizer.c
+++ b/pjmedia/src/pjmedia-codec/h264_packetizer.c
@@ -24,6 +24,10 @@
#include <pj/pool.h>
#include <pj/string.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "h264_packetizer.c"
#define DBG_PACKETIZE 0
@@ -528,3 +532,6 @@ PJ_DEF(pj_status_t) pjmedia_h264_unpacketize(pjmedia_h264_packetizer *pktz,
return PJ_SUCCESS;
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia-videodev/colorbar_dev.c b/pjmedia/src/pjmedia-videodev/colorbar_dev.c
index 7d6c348f..ef343e00 100644
--- a/pjmedia/src/pjmedia-videodev/colorbar_dev.c
+++ b/pjmedia/src/pjmedia-videodev/colorbar_dev.c
@@ -22,7 +22,10 @@
#include <pj/os.h>
#include <pj/rand.h>
-#if PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC
+
+#if defined(PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC) && \
+ PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC != 0
+
#define THIS_FILE "colorbar_dev.c"
#define DEFAULT_CLOCK_RATE 90000
diff --git a/pjmedia/src/pjmedia-videodev/dshow_dev.c b/pjmedia/src/pjmedia-videodev/dshow_dev.c
index c69393fa..cfc7a7e6 100644
--- a/pjmedia/src/pjmedia-videodev/dshow_dev.c
+++ b/pjmedia/src/pjmedia-videodev/dshow_dev.c
@@ -22,7 +22,9 @@
#include <pj/os.h>
#include <pj/unicode.h>
-#if PJMEDIA_VIDEO_DEV_HAS_DSHOW
+
+#if defined(PJMEDIA_VIDEO_DEV_HAS_DSHOW) && PJMEDIA_VIDEO_DEV_HAS_DSHOW != 0
+
#ifdef _MSC_VER
# pragma warning(push, 3)
diff --git a/pjmedia/src/pjmedia-videodev/dshowclasses.cpp b/pjmedia/src/pjmedia-videodev/dshowclasses.cpp
index bdddd01f..333d1420 100644
--- a/pjmedia/src/pjmedia-videodev/dshowclasses.cpp
+++ b/pjmedia/src/pjmedia-videodev/dshowclasses.cpp
@@ -19,7 +19,9 @@
#include <pjmedia-videodev/config.h>
-#if PJMEDIA_VIDEO_DEV_HAS_DSHOW
+
+#if defined(PJMEDIA_VIDEO_DEV_HAS_DSHOW) && PJMEDIA_VIDEO_DEV_HAS_DSHOW != 0
+
#include <assert.h>
#include <streams.h>
@@ -242,4 +244,5 @@ extern "C" void SourceFilter_SetMediaType(SourceFilter *src,
((OutputPin *)src->GetPin(0))->bufSize = pmt->lSampleSize;
}
+
#endif /* PJMEDIA_VIDEO_DEV_HAS_DSHOW */
diff --git a/pjmedia/src/pjmedia-videodev/errno.c b/pjmedia/src/pjmedia-videodev/errno.c
index c0729ca0..6a553ec9 100644
--- a/pjmedia/src/pjmedia-videodev/errno.c
+++ b/pjmedia/src/pjmedia-videodev/errno.c
@@ -25,6 +25,10 @@
* Message must be limited to 64 chars!
*/
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#if defined(PJ_HAS_ERROR_STRING) && (PJ_HAS_ERROR_STRING != 0)
static const struct
@@ -110,3 +114,6 @@ PJ_DEF(pj_str_t) pjmedia_videodev_strerror(pj_status_t statcode,
return errstr;
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia-videodev/ffmpeg_dev.c b/pjmedia/src/pjmedia-videodev/ffmpeg_dev.c
index aa02c87b..3c0de4a6 100644
--- a/pjmedia/src/pjmedia-videodev/ffmpeg_dev.c
+++ b/pjmedia/src/pjmedia-videodev/ffmpeg_dev.c
@@ -37,7 +37,9 @@
#include <pj/os.h>
#include <pj/unicode.h>
-#if PJMEDIA_VIDEO_DEV_HAS_FFMPEG
+
+#if defined(PJMEDIA_VIDEO_DEV_HAS_FFMPEG) && PJMEDIA_VIDEO_DEV_HAS_FFMPEG != 0
+
#define THIS_FILE "ffmpeg.c"
@@ -511,4 +513,5 @@ static pj_status_t ffmpeg_stream_destroy(pjmedia_vid_dev_stream *s)
# pragma comment( lib, "avutil.lib")
#endif
+
#endif /* PJMEDIA_VIDEO_DEV_HAS_FFMPEG */
diff --git a/pjmedia/src/pjmedia-videodev/sdl_dev.c b/pjmedia/src/pjmedia-videodev/sdl_dev.c
index 115b362e..3e437ad8 100644
--- a/pjmedia/src/pjmedia-videodev/sdl_dev.c
+++ b/pjmedia/src/pjmedia-videodev/sdl_dev.c
@@ -22,7 +22,9 @@
#include <pj/log.h>
#include <pj/os.h>
-#if PJMEDIA_VIDEO_DEV_HAS_SDL
+
+#if defined(PJMEDIA_VIDEO_DEV_HAS_SDL) && PJMEDIA_VIDEO_DEV_HAS_SDL != 0
+
#if defined(PJ_DARWINOS) && PJ_DARWINOS!=0
# include <Foundation/Foundation.h>
@@ -1288,4 +1290,5 @@ static pj_status_t sdl_stream_destroy(pjmedia_vid_dev_stream *strm)
# endif
#endif
+
#endif /* PJMEDIA_VIDEO_DEV_HAS_SDL */
diff --git a/pjmedia/src/pjmedia-videodev/videodev.c b/pjmedia/src/pjmedia-videodev/videodev.c
index 833608e8..f626a555 100644
--- a/pjmedia/src/pjmedia-videodev/videodev.c
+++ b/pjmedia/src/pjmedia-videodev/videodev.c
@@ -23,6 +23,10 @@
#include <pj/pool.h>
#include <pj/string.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "videodev.c"
#define DEFINE_CAP(name, info) {name, info}
@@ -804,3 +808,6 @@ PJ_DEF(pj_status_t) pjmedia_vid_dev_stream_destroy(
{
return strm->op->destroy(strm);
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia/avi_player.c b/pjmedia/src/pjmedia/avi_player.c
index ce8d914a..d15932ee 100644
--- a/pjmedia/src/pjmedia/avi_player.c
+++ b/pjmedia/src/pjmedia/avi_player.c
@@ -32,6 +32,9 @@
#include <pj/string.h>
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "avi_player.c"
#define AVIF_MUSTUSEINDEX 0x00000020
@@ -709,3 +712,6 @@ static pj_status_t avi_on_destroy(pjmedia_port *this_port)
pj_file_close(fport->fd);
return PJ_SUCCESS;
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia/endpoint.c b/pjmedia/src/pjmedia/endpoint.c
index 75831f1f..385850ba 100644
--- a/pjmedia/src/pjmedia/endpoint.c
+++ b/pjmedia/src/pjmedia/endpoint.c
@@ -523,6 +523,9 @@ PJ_DEF(pj_status_t) pjmedia_endpt_create_audio_sdp(pjmedia_endpt *endpt,
return PJ_SUCCESS;
}
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
/* Create m=video SDP media line */
PJ_DEF(pj_status_t) pjmedia_endpt_create_video_sdp(pjmedia_endpt *endpt,
pj_pool_t *pool,
@@ -530,6 +533,8 @@ PJ_DEF(pj_status_t) pjmedia_endpt_create_video_sdp(pjmedia_endpt *endpt,
unsigned options,
pjmedia_sdp_media **p_m)
{
+
+
const pj_str_t STR_VIDEO = { "video", 5 };
pjmedia_sdp_media *m;
pjmedia_vid_codec_info codec_info[PJMEDIA_VID_CODEC_MGR_MAX_CODECS];
@@ -661,6 +666,8 @@ PJ_DEF(pj_status_t) pjmedia_endpt_create_video_sdp(pjmedia_endpt *endpt,
return PJ_SUCCESS;
}
+#endif /* PJMEDIA_HAS_VIDEO */
+
/**
* Create a "blank" SDP session description. The SDP will contain basic SDP
@@ -729,7 +736,6 @@ PJ_DEF(pj_status_t) pjmedia_endpt_create_sdp( pjmedia_endpt *endpt,
const pj_sockaddr *addr0;
pjmedia_sdp_session *sdp;
pjmedia_sdp_media *m;
- unsigned i;
pj_status_t status;
/* Sanity check arguments */
@@ -750,14 +756,20 @@ PJ_DEF(pj_status_t) pjmedia_endpt_create_sdp( pjmedia_endpt *endpt,
return status;
sdp->media[sdp->media_count++] = m;
- /* The remaining stream, if any, are videos (by convention as well) */
- for (i=1; i<stream_cnt; ++i) {
- status = pjmedia_endpt_create_video_sdp(endpt, pool,
- &sock_info[i], 0, &m);
- if (status != PJ_SUCCESS)
- return status;
- sdp->media[sdp->media_count++] = m;
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+ {
+ unsigned i;
+
+ /* The remaining stream, if any, are videos (by convention as well) */
+ for (i=1; i<stream_cnt; ++i) {
+ status = pjmedia_endpt_create_video_sdp(endpt, pool,
+ &sock_info[i], 0, &m);
+ if (status != PJ_SUCCESS)
+ return status;
+ sdp->media[sdp->media_count++] = m;
+ }
}
+#endif
/* Done */
*p_sdp = sdp;
diff --git a/pjmedia/src/pjmedia/format.c b/pjmedia/src/pjmedia/format.c
index a5612dae..95a46e37 100644
--- a/pjmedia/src/pjmedia/format.c
+++ b/pjmedia/src/pjmedia/format.c
@@ -23,6 +23,52 @@
#include <pj/pool.h>
#include <pj/string.h>
+
+PJ_DEF(void) pjmedia_format_init_audio( pjmedia_format *fmt,
+ pj_uint32_t fmt_id,
+ unsigned clock_rate,
+ unsigned channel_count,
+ unsigned bits_per_sample,
+ unsigned frame_time_usec,
+ pj_uint32_t avg_bps,
+ pj_uint32_t max_bps)
+{
+ fmt->id = fmt_id;
+ fmt->type = PJMEDIA_TYPE_AUDIO;
+ fmt->detail_type = PJMEDIA_FORMAT_DETAIL_AUDIO;
+
+ fmt->det.aud.clock_rate = clock_rate;
+ fmt->det.aud.channel_count = channel_count;
+ fmt->det.aud.bits_per_sample = bits_per_sample;
+ fmt->det.aud.frame_time_usec = frame_time_usec;
+ fmt->det.aud.avg_bps = avg_bps;
+ fmt->det.aud.max_bps = max_bps;
+}
+
+
+PJ_DEF(pjmedia_audio_format_detail*)
+pjmedia_format_get_audio_format_detail(const pjmedia_format *fmt,
+ pj_bool_t assert_valid)
+{
+ if (fmt->detail_type==PJMEDIA_FORMAT_DETAIL_AUDIO) {
+ return (pjmedia_audio_format_detail*) &fmt->det.aud;
+ } else {
+ pj_assert(!assert_valid || !"Invalid audio format detail");
+ return NULL;
+ }
+}
+
+
+PJ_DEF(pjmedia_format*) pjmedia_format_copy(pjmedia_format *dst,
+ const pjmedia_format *src)
+{
+ return (pjmedia_format*)pj_memcpy(dst, src, sizeof(*src));
+}
+
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
static pj_status_t apply_packed_fmt(const pjmedia_video_format_info *fi,
pjmedia_video_apply_fmt_param *aparam);
@@ -56,28 +102,6 @@ static pjmedia_video_format_info built_in_vid_fmt_info[] =
{PJMEDIA_FORMAT_I422JPEG, "I422JPG", PJMEDIA_COLOR_MODEL_YUV, 16, 3, &apply_planar_422},
};
-
-PJ_DEF(void) pjmedia_format_init_audio( pjmedia_format *fmt,
- pj_uint32_t fmt_id,
- unsigned clock_rate,
- unsigned channel_count,
- unsigned bits_per_sample,
- unsigned frame_time_usec,
- pj_uint32_t avg_bps,
- pj_uint32_t max_bps)
-{
- fmt->id = fmt_id;
- fmt->type = PJMEDIA_TYPE_AUDIO;
- fmt->detail_type = PJMEDIA_FORMAT_DETAIL_AUDIO;
-
- fmt->det.aud.clock_rate = clock_rate;
- fmt->det.aud.channel_count = channel_count;
- fmt->det.aud.bits_per_sample = bits_per_sample;
- fmt->det.aud.frame_time_usec = frame_time_usec;
- fmt->det.aud.avg_bps = avg_bps;
- fmt->det.aud.max_bps = max_bps;
-}
-
PJ_DEF(void) pjmedia_format_init_video( pjmedia_format *fmt,
pj_uint32_t fmt_id,
unsigned width,
@@ -112,18 +136,6 @@ PJ_DEF(void) pjmedia_format_init_video( pjmedia_format *fmt,
}
}
-PJ_DEF(pjmedia_audio_format_detail*)
-pjmedia_format_get_audio_format_detail(const pjmedia_format *fmt,
- pj_bool_t assert_valid)
-{
- if (fmt->detail_type==PJMEDIA_FORMAT_DETAIL_AUDIO) {
- return (pjmedia_audio_format_detail*) &fmt->det.aud;
- } else {
- pj_assert(!assert_valid || !"Invalid audio format detail");
- return NULL;
- }
-}
-
PJ_DEF(pjmedia_video_format_detail*)
pjmedia_format_get_video_format_detail(const pjmedia_format *fmt,
pj_bool_t assert_valid)
@@ -136,12 +148,6 @@ pjmedia_format_get_video_format_detail(const pjmedia_format *fmt,
}
}
-PJ_DEF(pjmedia_format*) pjmedia_format_copy(pjmedia_format *dst,
- const pjmedia_format *src)
-{
- return (pjmedia_format*)pj_memcpy(dst, src, sizeof(*src));
-}
-
static pj_status_t apply_packed_fmt(const pjmedia_video_format_info *fi,
pjmedia_video_apply_fmt_param *aparam)
@@ -364,3 +370,4 @@ PJ_DEF(void) pjmedia_video_format_mgr_destroy(pjmedia_video_format_mgr *mgr)
video_format_mgr_instance = NULL;
}
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia/vid_codec.c b/pjmedia/src/pjmedia/vid_codec.c
index 8eded7df..5a3b9fad 100644
--- a/pjmedia/src/pjmedia/vid_codec.c
+++ b/pjmedia/src/pjmedia/vid_codec.c
@@ -24,6 +24,10 @@
#include <pj/log.h>
#include <pj/string.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "vid_codec.c"
static pjmedia_vid_codec_mgr *def_vid_codec_mgr;
@@ -729,3 +733,5 @@ pjmedia_vid_codec_mgr_dealloc_codec(pjmedia_vid_codec_mgr *mgr,
return (*codec->factory->op->dealloc_codec)(codec->factory, codec);
}
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia/vid_codec_util.c b/pjmedia/src/pjmedia/vid_codec_util.c
index 17e713a3..d3fea7a9 100644
--- a/pjmedia/src/pjmedia/vid_codec_util.c
+++ b/pjmedia/src/pjmedia/vid_codec_util.c
@@ -24,6 +24,10 @@
#include <pj/ctype.h>
#include <pj/math.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "vid_codec_util.c"
/* If this is set to non-zero, H.264 custom negotiation will require
@@ -617,3 +621,6 @@ PJ_DEF(pj_status_t) pjmedia_vid_codec_h264_apply_fmtp(
return PJ_SUCCESS;
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia/vid_port.c b/pjmedia/src/pjmedia/vid_port.c
index e5db8b10..672d2296 100644
--- a/pjmedia/src/pjmedia/vid_port.c
+++ b/pjmedia/src/pjmedia/vid_port.c
@@ -25,6 +25,10 @@
#include <pj/log.h>
#include <pj/pool.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define SIGNATURE PJMEDIA_SIG_VID_PORT
#define THIS_FILE "vid_port.c"
@@ -946,3 +950,6 @@ static pj_status_t vid_pasv_port_get_frame(struct pjmedia_port *this_port,
return status;
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia/vid_stream.c b/pjmedia/src/pjmedia/vid_stream.c
index 216674b5..4a4fa18c 100644
--- a/pjmedia/src/pjmedia/vid_stream.c
+++ b/pjmedia/src/pjmedia/vid_stream.c
@@ -38,6 +38,9 @@
#include <pj/string.h> /* memcpy() */
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "vid_stream.c"
#define ERRLEVEL 1
#define LOGERR_(expr) stream_perror expr
@@ -1938,3 +1941,4 @@ PJ_DEF(pj_status_t) pjmedia_vid_stream_info_from_sdp(
return status;
}
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/pjmedia/vid_tee.c b/pjmedia/src/pjmedia/vid_tee.c
index dd12ec3e..4ba737a9 100644
--- a/pjmedia/src/pjmedia/vid_tee.c
+++ b/pjmedia/src/pjmedia/vid_tee.c
@@ -23,6 +23,10 @@
#include <pj/log.h>
#include <pj/pool.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define TEE_PORT_NAME "vid_tee"
#define TEE_PORT_SIGN PJMEDIA_SIG_PORT_VID_TEE
#define MAX_DST_PORT_COUNT 20
@@ -382,3 +386,6 @@ static pj_status_t tee_destroy(pjmedia_port *port)
return PJ_SUCCESS;
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/test/test.c b/pjmedia/src/test/test.c
index d243ed8a..82b20e17 100644
--- a/pjmedia/src/test/test.c
+++ b/pjmedia/src/test/test.c
@@ -58,9 +58,11 @@ int test_main(void)
mem = &caching_pool.factory;
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
pjmedia_video_format_mgr_create(pool, 64, 0, NULL);
pjmedia_converter_mgr_create(pool, NULL);
pjmedia_vid_codec_mgr_create(pool, NULL);
+#endif
#if HAS_VID_PORT_TEST
DO_TEST(vid_port_test());
@@ -99,10 +101,12 @@ on_return:
PJ_LOG(3,(THIS_FILE,"Looks like everything is okay!"));
}
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
pjmedia_video_format_mgr_destroy(pjmedia_video_format_mgr_instance());
pjmedia_converter_mgr_destroy(pjmedia_converter_mgr_instance());
pjmedia_vid_codec_mgr_destroy(pjmedia_vid_codec_mgr_instance());
-
+#endif
+
pj_pool_release(pool);
pj_caching_pool_destroy(&caching_pool);
diff --git a/pjmedia/src/test/test.h b/pjmedia/src/test/test.h
index abd7d0bd..f7fae812 100644
--- a/pjmedia/src/test/test.h
+++ b/pjmedia/src/test/test.h
@@ -23,9 +23,9 @@
#include <pjmedia.h>
#include <pjlib.h>
-#define HAS_VID_DEV_TEST 1
-#define HAS_VID_PORT_TEST 0
-#define HAS_VID_CODEC_TEST 1
+#define HAS_VID_DEV_TEST PJMEDIA_HAS_VIDEO
+#define HAS_VID_PORT_TEST PJMEDIA_HAS_VIDEO
+#define HAS_VID_CODEC_TEST PJMEDIA_HAS_VIDEO
#define HAS_SDP_NEG_TEST 1
#define HAS_JBUF_TEST 1
#define HAS_MIPS_TEST 1
diff --git a/pjmedia/src/test/vid_codec_test.c b/pjmedia/src/test/vid_codec_test.c
index 36ca19ac..41171a9a 100644
--- a/pjmedia/src/test/vid_codec_test.c
+++ b/pjmedia/src/test/vid_codec_test.c
@@ -4,6 +4,10 @@
#include <pjmedia/vid_codec.h>
#include <pjmedia/port.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "vid_codec.c"
#define BYPASS_CODEC 0
@@ -465,3 +469,4 @@ on_return:
}
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/test/vid_dev_test.c b/pjmedia/src/test/vid_dev_test.c
index 0b4572a5..08b60a54 100644
--- a/pjmedia/src/test/vid_dev_test.c
+++ b/pjmedia/src/test/vid_dev_test.c
@@ -23,6 +23,10 @@
#include <pjmedia/vid_codec.h>
#include <pjmedia_videodev.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "vid_dev_test.c"
#define LOOP_DURATION 10
@@ -292,3 +296,6 @@ on_return:
return rc;
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjmedia/src/test/vid_port_test.c b/pjmedia/src/test/vid_port_test.c
index 5d04e24b..b47cd1b5 100644
--- a/pjmedia/src/test/vid_port_test.c
+++ b/pjmedia/src/test/vid_port_test.c
@@ -23,6 +23,10 @@
#include <pjmedia/vid_codec.h>
#include <pjmedia_videodev.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#define THIS_FILE "vid_dev_test.c"
#define LOOP_DURATION 6
@@ -239,3 +243,6 @@ on_return:
return rc;
}
+
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjsip-apps/src/samples/aviplay.c b/pjsip-apps/src/samples/aviplay.c
index a6602ba1..a949256a 100644
--- a/pjsip-apps/src/samples/aviplay.c
+++ b/pjsip-apps/src/samples/aviplay.c
@@ -54,6 +54,9 @@
*/
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
/* For logging purpose. */
#define THIS_FILE "aviplay.c"
@@ -529,3 +532,15 @@ int main(int argc, char *argv[])
{
return pj_run_app(&main_func, argc, argv, 0);
}
+
+#else
+
+int main(int argc, char *argv[])
+{
+ PJ_UNUSED_ARG(argc);
+ PJ_UNUSED_ARG(argv);
+ puts("Error: this sample requires video capability (PJMEDIA_HAS_VIDEO == 1)");
+ return -1;
+}
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjsip-apps/src/samples/simpleua.c b/pjsip-apps/src/samples/simpleua.c
index 056de017..58cde4c0 100644
--- a/pjsip-apps/src/samples/simpleua.c
+++ b/pjsip-apps/src/samples/simpleua.c
@@ -103,7 +103,7 @@ static pjsip_inv_session *g_inv; /* Current invite session. */
static pjmedia_stream *g_med_stream; /* Call's audio stream. */
static pjmedia_snd_port *g_snd_port; /* Sound device. */
-#if PJMEDIA_HAS_VIDEO
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
static pjmedia_vid_stream *g_med_vstream; /* Call's video stream. */
static pjmedia_vid_port *g_vid_capturer;/* Call's video capturer. */
static pjmedia_vid_port *g_vid_renderer;/* Call's video renderer. */
@@ -373,8 +373,8 @@ int main(int argc, char *argv[])
#endif
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
/* Init video subsystem */
-#if PJMEDIA_HAS_VIDEO
pool = pjmedia_endpt_create_pool(g_med_endpt, "Video subsystem", 512, 512);
status = pjmedia_video_format_mgr_create(pool, 64, 0, NULL);
PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1);
@@ -385,7 +385,7 @@ int main(int argc, char *argv[])
status = pjmedia_vid_dev_subsys_init(&cp.factory);
PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1);
-# if PJMEDIA_HAS_FFMPEG_CODEC
+# if defined(PJMEDIA_HAS_FFMPEG_CODEC) && PJMEDIA_HAS_FFMPEG_CODEC!=0
/* Init ffmpeg video codecs */
status = pjmedia_codec_ffmpeg_init(NULL, &cp.factory);
PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1);
@@ -557,8 +557,8 @@ int main(int argc, char *argv[])
if (g_snd_port)
pjmedia_snd_port_destroy(g_snd_port);
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
/* Destroy video ports */
-#if PJMEDIA_HAS_VIDEO
if (g_vid_capturer)
pjmedia_vid_port_destroy(g_vid_capturer);
if (g_vid_renderer)
@@ -568,9 +568,15 @@ int main(int argc, char *argv[])
/* Destroy streams */
if (g_med_stream)
pjmedia_stream_destroy(g_med_stream);
-#if PJMEDIA_HAS_VIDEO
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
if (g_med_vstream)
pjmedia_vid_stream_destroy(g_med_vstream);
+
+ /* Deinit ffmpeg codec */
+# if defined(PJMEDIA_HAS_FFMPEG_CODEC) && PJMEDIA_HAS_FFMPEG_CODEC!=0
+ pjmedia_codec_ffmpeg_deinit();
+# endif
+
#endif
/* Destroy media transports */
@@ -579,11 +585,6 @@ int main(int argc, char *argv[])
pjmedia_transport_close(g_med_transport[i]);
}
- /* Deinit ffmpeg codec */
-#if PJMEDIA_HAS_FFMPEG_CODEC
- pjmedia_codec_ffmpeg_deinit();
-#endif
-
/* Deinit pjmedia endpoint */
if (g_med_endpt)
pjmedia_endpt_destroy(g_med_endpt);
@@ -885,7 +886,7 @@ static void call_on_media_update( pjsip_inv_session *inv,
* which is video stream. With this media port interface, we can attach
* the port directly to a renderer/capture video device.
*/
-#if PJMEDIA_HAS_VIDEO
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
if (local_sdp->media_count > 1) {
pjmedia_vid_stream_info vstream_info;
pjmedia_vid_port_param vport_param;
diff --git a/pjsip-apps/src/samples/vid_streamutil.c b/pjsip-apps/src/samples/vid_streamutil.c
index 4d50b387..21be5c7c 100644
--- a/pjsip-apps/src/samples/vid_streamutil.c
+++ b/pjsip-apps/src/samples/vid_streamutil.c
@@ -35,6 +35,10 @@
#include <pjmedia-codec.h>
#include <pjmedia/transport_srtp.h>
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
+
#include <stdlib.h> /* atoi() */
#include <stdio.h>
@@ -927,3 +931,16 @@ on_exit:
return (status == PJ_SUCCESS) ? 0 : 1;
}
+
+
+#else
+
+int main(int argc, char *argv[])
+{
+ PJ_UNUSED_ARG(argc);
+ PJ_UNUSED_ARG(argv);
+ puts("Error: this sample requires video capability (PJMEDIA_HAS_VIDEO == 1)");
+ return -1;
+}
+
+#endif /* PJMEDIA_HAS_VIDEO */
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index 6947c1aa..98fe5cd8 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -382,6 +382,13 @@ PJ_DEF(pj_status_t) pjsua_acc_add( const pjsua_acc_config *cfg,
/* Must have a transport */
PJ_ASSERT_RETURN(pjsua_var.tpdata[0].data.ptr != NULL, PJ_EINVALIDOP);
+ /* Verify media count */
+#if !defined(PJMEDIA_HAS_VIDEO) || (PJMEDIA_HAS_VIDEO == 0)
+ PJ_ASSERT_RETURN(cfg->max_video_cnt == 0, PJ_EINVAL);
+#endif
+ PJ_ASSERT_RETURN(cfg->max_audio_cnt + cfg->max_video_cnt <=
+ PJSUA_MAX_CALL_MEDIA, PJ_ETOOMANY);
+
PJSUA_LOCK();
/* Find empty account id. */
@@ -641,6 +648,14 @@ PJ_DEF(pj_status_t) pjsua_acc_modify( pjsua_acc_id acc_id,
PJ_ASSERT_RETURN(acc_id>=0 && acc_id<(int)PJ_ARRAY_SIZE(pjsua_var.acc),
PJ_EINVAL);
+ /* Verify media count */
+#if !defined(PJMEDIA_HAS_VIDEO) || (PJMEDIA_HAS_VIDEO == 0)
+ PJ_ASSERT_RETURN(cfg->max_video_cnt == 0, PJ_EINVAL);
+#endif
+ PJ_ASSERT_RETURN(cfg->max_audio_cnt + cfg->max_video_cnt <=
+ PJSUA_MAX_CALL_MEDIA, PJ_ETOOMANY);
+
+
PJSUA_LOCK();
acc = &pjsua_var.acc[acc_id];
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index f8abc938..2679a3ad 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -1465,10 +1465,12 @@ PJ_DEF(pj_status_t) pjsua_call_get_stream_info( pjsua_call_id call_id,
status = pjmedia_stream_get_info(call_med->strm.a.stream,
&psi->info.aud);
break;
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
case PJMEDIA_TYPE_VIDEO:
status = pjmedia_vid_stream_get_info(call_med->strm.v.stream,
&psi->info.vid);
break;
+#endif
default:
status = PJMEDIA_EINVALIMEDIATYPE;
break;
@@ -1512,6 +1514,7 @@ PJ_DEF(pj_status_t) pjsua_call_get_stream_stat( pjsua_call_id call_id,
status = pjmedia_stream_get_stat_jbuf(call_med->strm.a.stream,
&stat->jbuf);
break;
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
case PJMEDIA_TYPE_VIDEO:
status = pjmedia_vid_stream_get_stat(call_med->strm.v.stream,
&stat->rtcp);
@@ -1519,6 +1522,7 @@ PJ_DEF(pj_status_t) pjsua_call_get_stream_stat( pjsua_call_id call_id,
status = pjmedia_vid_stream_get_stat_jbuf(call_med->strm.v.stream,
&stat->jbuf);
break;
+#endif
default:
status = PJMEDIA_EINVALIMEDIATYPE;
break;
diff --git a/pjsip/src/pjsua-lib/pjsua_dump.c b/pjsip/src/pjsua-lib/pjsua_dump.c
index f94e036f..8dec22b8 100644
--- a/pjsip/src/pjsua-lib/pjsua_dump.c
+++ b/pjsip/src/pjsua-lib/pjsua_dump.c
@@ -312,6 +312,8 @@ static void dump_media_session(const char *indent,
info.tx_pt,
info.param->setting.frm_per_pkt*
info.param->info.frm_ptime);
+
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
} else if (call_med->type == PJMEDIA_TYPE_VIDEO) {
pjmedia_vid_stream *stream = call_med->strm.v.stream;
pjmedia_vid_stream_info info;
@@ -343,6 +345,8 @@ static void dump_media_session(const char *indent,
vfd->size.w, vfd->size.h,
vfd->fps.num*1.0/vfd->fps.denum);
}
+#endif /* PJMEDIA_HAS_VIDEO */
+
} else {
has_stat = PJ_FALSE;
}
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 94e81566..f9995045 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -1247,6 +1247,7 @@ pj_status_t pjsua_call_media_init(pjsua_call_media *call_med,
call_med->tp_st = PJSUA_MED_TP_IDLE;
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
/* While in initial call, set default video devices */
if (type == PJMEDIA_TYPE_VIDEO) {
call_med->strm.v.rdr_dev = acc->cfg.vid_rend_dev;
@@ -1262,6 +1263,8 @@ pj_status_t pjsua_call_media_init(pjsua_call_media *call_med,
call_med->strm.v.cap_dev = info.id;
}
}
+#endif
+
} else if (call_med->tp_st == PJSUA_MED_TP_DISABLED) {
/* Media is being reenabled. */
call_med->tp_st = PJSUA_MED_TP_INIT;
@@ -1650,10 +1653,12 @@ pj_status_t pjsua_media_channel_create_sdp(pjsua_call_id call_id,
status = pjmedia_endpt_create_audio_sdp(pjsua_var.med_endpt, pool,
&tpinfo.sock_info, 0, &m);
break;
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
case PJMEDIA_TYPE_VIDEO:
status = pjmedia_endpt_create_video_sdp(pjsua_var.med_endpt, pool,
&tpinfo.sock_info, 0, &m);
break;
+#endif
default:
pj_assert(!"Invalid call_med media type");
return PJ_EBUG;
@@ -2124,7 +2129,7 @@ pj_status_t pjsua_media_channel_update(pjsua_call_id call_id,
call->audio_idx = mi;
}
break;
-#if PJMEDIA_HAS_VIDEO
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
case PJMEDIA_TYPE_VIDEO:
status = video_channel_update(call_med, tmp_pool,
local_sdp, remote_sdp);