Changeset 3425
- Timestamp:
- Feb 28, 2011 6:59:47 PM (14 years ago)
- Location:
- pjproject/branches/projects/2.0-dev
- Files:
-
- 1 added
- 1 deleted
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/branches/projects/2.0-dev/pjmedia/include/pjmedia/config.h
r3420 r3425 981 981 /** 982 982 * Maximum video frame size. 983 * Default: 1 6kB984 */ 985 #ifndef PJMEDIA_MAX_VIDEO_ FRAME_SIZE986 # define PJMEDIA_MAX_VIDEO_ FRAME_SIZE (1<<14)983 * Default: 128kB 984 */ 985 #ifndef PJMEDIA_MAX_VIDEO_ENC_FRAME_SIZE 986 # define PJMEDIA_MAX_VIDEO_ENC_FRAME_SIZE (1<<17) 987 987 #endif 988 988 -
pjproject/branches/projects/2.0-dev/pjmedia/include/pjmedia/format.h
r3401 r3425 182 182 PJMEDIA_FORMAT_H261 = PJMEDIA_FORMAT_PACK('H', '2', '6', '1'), 183 183 PJMEDIA_FORMAT_H263 = PJMEDIA_FORMAT_PACK('H', '2', '6', '3'), 184 PJMEDIA_FORMAT_H263P = PJMEDIA_FORMAT_PACK('P', '2', '6', '3'), 184 185 185 186 PJMEDIA_FORMAT_MJPEG = PJMEDIA_FORMAT_PACK('M', 'J', 'P', 'G'), … … 187 188 PJMEDIA_FORMAT_MPEG2VIDEO = PJMEDIA_FORMAT_PACK('M', 'P', '2', 'V'), 188 189 PJMEDIA_FORMAT_MPEG4 = PJMEDIA_FORMAT_PACK('M', 'P', 'G', '4'), 190 PJMEDIA_FORMAT_XVID = PJMEDIA_FORMAT_PACK('x', 'v', 'i', 'd'), 189 191 190 192 } pjmedia_format_id; -
pjproject/branches/projects/2.0-dev/pjmedia/include/pjmedia/vid_codec.h
r3420 r3425 86 86 87 87 /** 88 * Duplicate video codec parameter. 89 * 90 * @param pool The pool. 91 * @param src The video codec parameter to be duplicated. 92 * 93 * @return Duplicated codec parameter. 94 */ 95 PJ_DECL(pjmedia_vid_codec_param*) pjmedia_vid_codec_param_clone( 96 pj_pool_t *pool, 97 const pjmedia_vid_codec_param *src); 98 99 /** 88 100 * Enumeration of video codec events. 89 101 */ … … 517 529 unsigned *prio); 518 530 531 519 532 /** 520 533 * Get codec info for the specified static payload type. … … 531 544 unsigned pt, 532 545 const pjmedia_vid_codec_info **info); 546 547 548 /** 549 * Get codec info for the specified format ID. 550 * 551 * @param mgr The codec manager instance. If NULL, the default codec 552 * manager instance will be used. 553 * @param fmt_id Format ID. See #pjmedia_format_id 554 * @param info Pointer to receive codec info. 555 * 556 * @return PJ_SUCCESS on success. 557 */ 558 PJ_DECL(pj_status_t) 559 pjmedia_vid_codec_mgr_get_codec_info2(pjmedia_vid_codec_mgr *mgr, 560 pjmedia_format_id fmt_id, 561 const pjmedia_vid_codec_info **info); 562 533 563 534 564 /** -
pjproject/branches/projects/2.0-dev/pjmedia/include/pjmedia/vid_stream.h
r3420 r3425 89 89 will be calculated from RTP. */ 90 90 unsigned tx_pt; /**< Outgoing codec paylaod type. */ 91 unsigned rx_pt; /**< Incoming codec paylaod type. */ 91 92 pj_uint32_t ssrc; /**< RTP SSRC. */ 92 93 pj_uint32_t rtp_ts; /**< Initial RTP timestamp. */ … … 221 222 222 223 /** 224 * Get the stream statistics. See also #pjmedia_stream_get_stat_jbuf() 225 * 226 * @param stream The video stream. 227 * @param stat Media stream statistics. 228 * 229 * @return PJ_SUCCESS on success. 230 */ 231 PJ_DECL(pj_status_t) pjmedia_vid_stream_get_stat( 232 const pjmedia_vid_stream *stream, 233 pjmedia_rtcp_stat *stat); 234 235 /** 236 * Reset the video stream statistics. 237 * 238 * @param stream The video stream. 239 * 240 * @return PJ_SUCCESS on success. 241 */ 242 PJ_DECL(pj_status_t) pjmedia_vid_stream_reset_stat(pjmedia_vid_stream *stream); 243 244 245 /** 246 * Get current jitter buffer state. See also #pjmedia_stream_get_stat() 247 * 248 * @param stream The video stream. 249 * @param state Jitter buffer state. 250 * 251 * @return PJ_SUCCESS on success. 252 */ 253 PJ_DECL(pj_status_t) pjmedia_vid_stream_get_stat_jbuf( 254 const pjmedia_vid_stream *stream, 255 pjmedia_jb_state *state); 256 257 258 /** 259 * Get the stream info. 260 * 261 * @param stream The video stream. 262 * @param info Video stream info. 263 * 264 * @return PJ_SUCCESS on success. 265 */ 266 PJ_DECL(pj_status_t) pjmedia_vid_stream_get_info( 267 const pjmedia_vid_stream *stream, 268 pjmedia_vid_stream_info *info); 269 270 271 /** 223 272 * Start the video stream. This will start the appropriate channels 224 273 * in the video stream, depending on the video direction that was set … … 233 282 234 283 /** 235 * Get the stream statistics. See also #pjmedia_stream_get_stat_jbuf()236 *237 * @param stream The video stream.238 * @param stat Media stream statistics.239 *240 * @return PJ_SUCCESS on success.241 */242 PJ_DECL(pj_status_t) pjmedia_vid_stream_get_stat(243 const pjmedia_vid_stream *stream,244 pjmedia_rtcp_stat *stat);245 246 /**247 * Reset the video stream statistics.248 *249 * @param stream The video stream.250 *251 * @return PJ_SUCCESS on success.252 */253 PJ_DECL(pj_status_t) pjmedia_vid_stream_reset_stat(pjmedia_vid_stream *stream);254 255 256 /**257 * Get current jitter buffer state. See also #pjmedia_stream_get_stat()258 *259 * @param stream The video stream.260 * @param state Jitter buffer state.261 *262 * @return PJ_SUCCESS on success.263 */264 PJ_DECL(pj_status_t) pjmedia_vid_stream_get_stat_jbuf(265 const pjmedia_vid_stream *stream,266 pjmedia_jb_state *state);267 268 269 PJ_DECL(pj_status_t) pjmedia_vid_stream_get_param(270 const pjmedia_vid_stream *stream,271 pjmedia_rtcp_stat *stat);272 273 /**274 284 * Pause the individual channel in the stream. 275 285 * -
pjproject/branches/projects/2.0-dev/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
r3420 r3425 206 206 /* Predefined info */ 207 207 pjmedia_vid_codec_info info; 208 pjmedia_format_id base_fmt_id; 208 209 func_packetize packetize; 209 210 func_unpacketize unpacketize; … … 246 247 { 247 248 { 248 {PJMEDIA_FORMAT_H263, {"H263",4}, PJMEDIA_RTP_PT_H263}, 249 {PJMEDIA_FORMAT_H263P, {"H263-1998",9}, PJMEDIA_RTP_PT_H263}, 250 PJMEDIA_FORMAT_H263, 249 251 &h263_packetize, &h263_unpacketize, &h263_parse_fmtp, 250 252 {2, { {{"CIF",3}, {"2",1}}, {{"QCIF",4}, {"1",1}}, } }, 251 253 }, 252 254 { 253 {PJMEDIA_FORMAT_H261, {"H261",4}, PJMEDIA_RTP_PT_H261}, 255 {PJMEDIA_FORMAT_H263, {"H263",4}, PJMEDIA_RTP_PT_H263}, 256 0, 257 &h263_packetize, &h263_unpacketize, &h263_parse_fmtp, 258 {2, { {{"CIF",3}, {"2",1}}, {{"QCIF",4}, {"1",1}}, } }, 254 259 }, 255 260 { 256 {PJMEDIA_FORMAT_MJPEG, {"JPEG",4}, PJMEDIA_RTP_PT_JPEG}, 261 {PJMEDIA_FORMAT_H261, {"H261",4}, PJMEDIA_RTP_PT_H261}, 262 }, 263 { 264 {PJMEDIA_FORMAT_MJPEG, {"JPEG",4}, PJMEDIA_RTP_PT_JPEG}, 265 }, 266 { 267 {PJMEDIA_FORMAT_MPEG4, {"MP4V",4}, PJMEDIA_RTP_PT_MPV}, 268 }, 269 { 270 {PJMEDIA_FORMAT_XVID, {"XVID",4}, PJMEDIA_RTP_PT_MPV}, 271 PJMEDIA_FORMAT_MPEG4, 257 272 }, 258 273 }; … … 448 463 449 464 450 static const ffmpeg_codec_desc* find_codec_ info(465 static const ffmpeg_codec_desc* find_codec_desc_by_info( 451 466 const pjmedia_vid_codec_info *info) 452 467 { … … 469 484 470 485 471 static int find_codec_i nfo_idx_by_fmt_id(pjmedia_format_id fmt_id)486 static int find_codec_idx_by_fmt_id(pjmedia_format_id fmt_id) 472 487 { 473 488 int i; … … 490 505 AVCodec *c; 491 506 pj_status_t status; 507 unsigned i; 492 508 493 509 if (ffmpeg_factory.pool != NULL) { … … 533 549 */ 534 550 551 //PJ_LOG(3, (THIS_FILE, "%s", c->name)); 535 552 status = CodecID_to_pjmedia_format_id(c->id, &fmt_id); 536 553 /* Skip if format ID is unknown */ … … 538 555 continue; 539 556 540 codec_info_idx = find_codec_i nfo_idx_by_fmt_id(fmt_id);557 codec_info_idx = find_codec_idx_by_fmt_id(fmt_id); 541 558 /* Skip if codec is unwanted by this wrapper (not listed in 542 559 * the codec info array) … … 635 652 } 636 653 654 /* Init unassigned encoder/decoder description from base codec */ 655 for (i = 0; i < PJ_ARRAY_SIZE(codec_desc); ++i) { 656 ffmpeg_codec_desc *desc = &codec_desc[i]; 657 658 if (desc->base_fmt_id && (!desc->dec || !desc->enc)) { 659 ffmpeg_codec_desc *base_desc = NULL; 660 int base_desc_idx; 661 pjmedia_dir copied_dir = PJMEDIA_DIR_NONE; 662 663 base_desc_idx = find_codec_idx_by_fmt_id(desc->base_fmt_id); 664 if (base_desc_idx != -1) 665 base_desc = &codec_desc[base_desc_idx]; 666 if (!base_desc || !base_desc->enabled) 667 continue; 668 669 /* Copy description from base codec */ 670 if (!desc->info.dec_fmt_id_cnt) { 671 desc->info.dec_fmt_id_cnt = base_desc->info.dec_fmt_id_cnt; 672 pj_memcpy(desc->info.dec_fmt_id, base_desc->info.dec_fmt_id, 673 sizeof(pjmedia_format_id)*desc->info.dec_fmt_id_cnt); 674 } 675 if (!desc->info.fps_cnt) { 676 desc->info.fps_cnt = base_desc->info.fps_cnt; 677 pj_memcpy(desc->info.fps, base_desc->info.fps, 678 sizeof(desc->info.fps[0])*desc->info.fps_cnt); 679 } 680 if (!desc->info.clock_rate) { 681 desc->info.clock_rate = base_desc->info.clock_rate; 682 } 683 if (!desc->dec && base_desc->dec) { 684 copied_dir |= PJMEDIA_DIR_DECODING; 685 desc->dec = base_desc->dec; 686 } 687 if (!desc->enc && base_desc->enc) { 688 copied_dir |= PJMEDIA_DIR_ENCODING; 689 desc->enc = base_desc->enc; 690 } 691 692 desc->info.dir |= copied_dir; 693 desc->enabled = (desc->info.dir != PJMEDIA_DIR_NONE); 694 695 if (copied_dir != PJMEDIA_DIR_NONE) { 696 const char *dir_name[] = {NULL, "encoder", "decoder", "codec"}; 697 PJ_LOG(5, (THIS_FILE, "The %.*s %s is using base codec (%.*s)", 698 desc->info.encoding_name.slen, 699 desc->info.encoding_name.ptr, 700 dir_name[copied_dir], 701 base_desc->info.encoding_name.slen, 702 base_desc->info.encoding_name.ptr)); 703 } 704 } 705 } 706 637 707 /* Register codec factory to codec manager. */ 638 708 status = pjmedia_vid_codec_mgr_register_factory(mgr, … … 691 761 PJ_ASSERT_RETURN(info, PJ_EINVAL); 692 762 693 desc = find_codec_ info(info);763 desc = find_codec_desc_by_info(info); 694 764 if (!desc) { 695 765 return PJMEDIA_CODEC_EUNSUP; … … 711 781 PJ_ASSERT_RETURN(info && attr, PJ_EINVAL); 712 782 713 desc = find_codec_ info(info);783 desc = find_codec_desc_by_info(info); 714 784 if (!desc) { 715 785 return PJMEDIA_CODEC_EUNSUP; … … 742 812 pjmedia_vid_codec_info codecs[]) 743 813 { 744 unsigned i ;814 unsigned i, max_cnt; 745 815 746 816 PJ_ASSERT_RETURN(codecs && *count > 0, PJ_EINVAL); 747 817 PJ_ASSERT_RETURN(factory == &ffmpeg_factory.base, PJ_EINVAL); 748 818 749 *count = PJ_MIN(*count, PJ_ARRAY_SIZE(codec_desc)); 750 751 for (i=0; i<*count; ++i) { 752 pj_memcpy(&codecs[i], &codec_desc[i].info, 753 sizeof(pjmedia_vid_codec_info)); 819 max_cnt = PJ_MIN(*count, PJ_ARRAY_SIZE(codec_desc)); 820 *count = 0; 821 822 for (i=0; i<max_cnt; ++i) { 823 if (codec_desc[i].enabled) { 824 pj_memcpy(&codecs[*count], &codec_desc[i].info, 825 sizeof(pjmedia_vid_codec_info)); 826 (*count)++; 827 } 754 828 } 755 829 … … 773 847 PJ_ASSERT_RETURN(factory == &ffmpeg_factory.base, PJ_EINVAL); 774 848 775 desc = find_codec_ info(info);849 desc = find_codec_desc_by_info(info); 776 850 if (!desc) { 777 851 return PJMEDIA_CODEC_EUNSUP; … … 928 1002 929 1003 /* Decoding only attributes */ 930 // this setting will be automatically fetched from the bitstream. 931 //ctx->coded_width = ff->param.dec_fmt.det.vid.size.w; 932 //ctx->coded_height = ff->param.dec_fmt.det.vid.size.h; 1004 1005 /* Width/height may be overriden by ffmpeg after first decoding. */ 1006 ctx->width = ctx->coded_width = ff->param.dec_fmt.det.vid.size.w; 1007 ctx->height = ctx->coded_height = ff->param.dec_fmt.det.vid.size.h; 933 1008 934 1009 /* For decoder, be more flexible */ … … 1199 1274 1200 1275 /* Validate output buffer size */ 1201 PJ_ASSERT_RETURN(ff->dec_vafp.framebytes <= output_buf_len, PJ_ETOOSMALL);1276 //PJ_ASSERT_RETURN(ff->dec_vafp.framebytes <= output_buf_len, PJ_ETOOSMALL); 1202 1277 1203 1278 /* Init frame to receive the decoded data, the ffmpeg codec context will … … 1311 1386 1312 1387 /* Check provided buffer size after format changed */ 1313 if (vafp->framebytes > output_buf_len)1314 return PJ_ETOOSMALL;1388 //if (vafp->framebytes > output_buf_len) 1389 //return PJ_ETOOSMALL; 1315 1390 1316 1391 /* Get the decoded data */ -
pjproject/branches/projects/2.0-dev/pjmedia/src/pjmedia/avi_player.c
r3402 r3425 340 340 if (avi_hdr.strl_hdr[i].flags & AVISF_VIDEO_PALCHANGES || 341 341 (avi_hdr.strl_hdr[i].codec != PJMEDIA_FORMAT_MJPEG && 342 avi_hdr.strl_hdr[i].codec != PJMEDIA_FORMAT_XVID && 342 343 avi_hdr.strl_hdr[i].codec != PJMEDIA_FORMAT_UYVY && 343 344 avi_hdr.strl_hdr[i].codec != PJMEDIA_FORMAT_YUY2 && -
pjproject/branches/projects/2.0-dev/pjmedia/src/pjmedia/ffmpeg_util.c
r3392 r3425 52 52 } ffmpeg_codec_table[] = 53 53 { 54 {PJMEDIA_FORMAT_H261, CODEC_ID_H261}, 55 {PJMEDIA_FORMAT_H263, CODEC_ID_H263}, 56 {PJMEDIA_FORMAT_MPEG1VIDEO, CODEC_ID_MPEG1VIDEO}, 57 {PJMEDIA_FORMAT_MPEG2VIDEO, CODEC_ID_MPEG2VIDEO}, 58 {PJMEDIA_FORMAT_MPEG4, CODEC_ID_MPEG4}, 59 {PJMEDIA_FORMAT_MJPEG, CODEC_ID_MJPEG}, 54 {PJMEDIA_FORMAT_H261, CODEC_ID_H261}, 55 {PJMEDIA_FORMAT_H263, CODEC_ID_H263}, 56 {PJMEDIA_FORMAT_H263P, CODEC_ID_H263P}, 57 {PJMEDIA_FORMAT_MPEG1VIDEO, CODEC_ID_MPEG1VIDEO}, 58 {PJMEDIA_FORMAT_MPEG2VIDEO, CODEC_ID_MPEG2VIDEO}, 59 {PJMEDIA_FORMAT_MPEG4, CODEC_ID_MPEG4}, 60 {PJMEDIA_FORMAT_MJPEG, CODEC_ID_MJPEG}, 61 #if LIBAVCODEC_VERSION_MAJOR < 53 62 {PJMEDIA_FORMAT_XVID, CODEC_ID_XVID}, 63 #endif 60 64 }; 61 65 -
pjproject/branches/projects/2.0-dev/pjmedia/src/pjmedia/stream.c
r3420 r3425 3035 3035 3036 3036 /* Media type must be audio */ 3037 if (pj_stricmp(&local_m->desc.media, &ID_AUDIO) == 0)3037 if (pj_stricmp(&local_m->desc.media, &ID_AUDIO) != 0) 3038 3038 return PJMEDIA_EINVALIMEDIATYPE; 3039 3039 -
pjproject/branches/projects/2.0-dev/pjmedia/src/pjmedia/vid_codec.c
r3420 r3425 69 69 70 70 /* 71 * Duplicate video codec parameter. 72 */ 73 PJ_DEF(pjmedia_vid_codec_param*) pjmedia_vid_codec_param_clone( 74 pj_pool_t *pool, 75 const pjmedia_vid_codec_param *src) 76 { 77 pjmedia_vid_codec_param *p; 78 unsigned i; 79 80 PJ_ASSERT_RETURN(pool && src, NULL); 81 82 p = PJ_POOL_ZALLOC_T(pool, pjmedia_vid_codec_param); 83 84 /* Update codec param */ 85 pj_memcpy(p, src, sizeof(pjmedia_vid_codec_param)); 86 for (i = 0; i < src->dec_fmtp.cnt; ++i) { 87 pj_strdup(pool, &p->dec_fmtp.param[i].name, 88 &src->dec_fmtp.param[i].name); 89 pj_strdup(pool, &p->dec_fmtp.param[i].val, 90 &src->dec_fmtp.param[i].val); 91 } 92 for (i = 0; i < src->enc_fmtp.cnt; ++i) { 93 pj_strdup(pool, &p->enc_fmtp.param[i].name, 94 &src->enc_fmtp.param[i].name); 95 pj_strdup(pool, &p->enc_fmtp.param[i].val, 96 &src->enc_fmtp.param[i].val); 97 } 98 99 return p; 100 } 101 102 /* 71 103 * Initialize codec manager. 72 104 */ … … 306 338 307 339 340 PJ_DEF(pj_status_t) pjmedia_vid_codec_mgr_get_codec_info2( 341 pjmedia_vid_codec_mgr *mgr, 342 pjmedia_format_id fmt_id, 343 const pjmedia_vid_codec_info **p_info) 344 { 345 unsigned i; 346 347 PJ_ASSERT_RETURN(p_info, PJ_EINVAL); 348 349 if (!mgr) mgr = def_vid_codec_mgr; 350 PJ_ASSERT_RETURN(mgr, PJ_EINVAL); 351 352 pj_mutex_lock(mgr->mutex); 353 354 for (i=0; i<mgr->codec_cnt; ++i) { 355 if (mgr->codec_desc[i].info.fmt_id == fmt_id) { 356 *p_info = &mgr->codec_desc[i].info; 357 358 pj_mutex_unlock(mgr->mutex); 359 return PJ_SUCCESS; 360 } 361 } 362 363 pj_mutex_unlock(mgr->mutex); 364 365 return PJMEDIA_CODEC_EUNSUP; 366 } 367 368 308 369 /* 309 370 * Convert codec info struct into a unique codec identifier. … … 633 694 } 634 695 635 p = PJ_POOL_ZALLOC_T(pool, pjmedia_vid_codec_param); 636 p = codec_desc->def_param; 637 638 /* Update codec param */ 639 pj_memcpy(p, param, sizeof(pjmedia_vid_codec_param)); 640 for (i = 0; i < param->dec_fmtp.cnt; ++i) { 641 pj_strdup(pool, &p->dec_fmtp.param[i].name, 642 ¶m->dec_fmtp.param[i].name); 643 pj_strdup(pool, &p->dec_fmtp.param[i].val, 644 ¶m->dec_fmtp.param[i].val); 645 } 646 for (i = 0; i < param->enc_fmtp.cnt; ++i) { 647 pj_strdup(pool, &p->enc_fmtp.param[i].name, 648 ¶m->enc_fmtp.param[i].name); 649 pj_strdup(pool, &p->enc_fmtp.param[i].val, 650 ¶m->enc_fmtp.param[i].val); 651 } 696 /* Update codec default param */ 697 p = pjmedia_vid_codec_param_clone(pool, param); 698 if (!p) 699 return PJ_EINVAL; 700 codec_desc->def_param = p; 652 701 653 702 pj_mutex_unlock(mgr->mutex); -
pjproject/branches/projects/2.0-dev/pjmedia/src/pjmedia/vid_stream.c
r3420 r3425 85 85 pjmedia_endpt *endpt; /**< Media endpoint. */ 86 86 pjmedia_vid_codec_mgr *codec_mgr; /**< Codec manager. */ 87 pjmedia_vid_stream_info info; /**< Stream info. */ 87 88 88 89 pjmedia_vid_channel *enc; /**< Encoding channel. */ … … 129 130 130 131 #if TRACE_JB 131 pj_oshandle_t trace_jb_fd;/**< Jitter tracing file handle.*/132 char *trace_jb_buf;/**< Jitter tracing buffer. */132 pj_oshandle_t trace_jb_fd; /**< Jitter tracing file handle.*/ 133 char *trace_jb_buf; /**< Jitter tracing buffer. */ 133 134 #endif 134 135 135 pjmedia_vid_codec *codec; /**< Codec instance being used. */ 136 pjmedia_vid_codec_info codec_info; /**< Codec param. */ 137 pjmedia_vid_codec_param codec_param; /**< Codec param. */ 138 139 pjmedia_vid_stream_info info; 136 pjmedia_vid_codec *codec; /**< Codec instance being used. */ 140 137 }; 141 138 … … 627 624 status = pjmedia_jbuf_reset(stream->jb); 628 625 PJ_LOG(4,(channel->port.info.name.ptr, "Jitter buffer reset")); 629 630 626 } else { 631 632 /* Video stream */633 634 627 /* Just put the payload into jitter buffer */ 635 628 pjmedia_jbuf_put_frame3(stream->jb, payload, payloadlen, 0, … … 928 921 if (frame->bit_info & PJMEDIA_VID_CODEC_EVENT_FMT_CHANGED) { 929 922 /* Update param from codec */ 930 stream->codec->op->get_param(stream->codec, &stream->codec_param);923 stream->codec->op->get_param(stream->codec, stream->info.codec_param); 931 924 932 925 /* Update decoding channel port info */ 933 stream->dec->port.info.fmt = stream->codec_param.dec_fmt; 926 pjmedia_format_copy(&stream->dec->port.info.fmt, 927 &stream->info.codec_param->dec_fmt); 934 928 } 935 929 … … 965 959 /* Init vars */ 966 960 if (dir==PJMEDIA_DIR_DECODING) { 967 type_name = "vst rmdec";961 type_name = "vstdec"; 968 962 fmt = &info->codec_param->dec_fmt; 969 963 } else { 970 type_name = "vst rmenc";964 type_name = "vstenc"; 971 965 fmt = &info->codec_param->enc_fmt; 972 966 } … … 1054 1048 PJ_ASSERT_RETURN(stream != NULL, PJ_ENOMEM); 1055 1049 1050 /* Copy stream info */ 1051 pj_memcpy(&stream->info, info, sizeof(*info)); 1052 1056 1053 /* Get codec manager */ 1057 1054 stream->codec_mgr = pjmedia_vid_codec_mgr_instance(); … … 1064 1061 1065 1062 /* Create and initialize codec: */ 1066 stream->codec_info = info->codec_info;1067 1063 status = pjmedia_vid_codec_mgr_alloc_codec(stream->codec_mgr, 1068 1064 &info->codec_info, … … 1073 1069 1074 1070 /* Get codec param: */ 1075 if (info->codec_param) 1076 stream->codec_param = *info->codec_param; 1077 else { 1071 if (info->codec_param) { 1072 stream->info.codec_param = pjmedia_vid_codec_param_clone( 1073 pool, 1074 info->codec_param); 1075 } else { 1076 pjmedia_vid_codec_param def_param; 1077 1078 1078 status = pjmedia_vid_codec_mgr_get_default_param(stream->codec_mgr, 1079 1079 &info->codec_info, 1080 & stream->codec_param);1080 &def_param); 1081 1081 if (status != PJ_SUCCESS) 1082 1082 return status; 1083 stream->info.codec_param = pjmedia_vid_codec_param_clone( 1084 pool, 1085 &def_param); 1086 pj_assert(stream->info.codec_param); 1083 1087 } 1084 1088 1085 1089 vfd_enc = pjmedia_format_get_video_format_detail( 1086 &stream->codec_param.enc_fmt, 1); 1090 &stream->info.codec_param->enc_fmt, 1091 PJ_TRUE); 1087 1092 1088 1093 /* Init stream: */ … … 1117 1122 1118 1123 /* Init codec param */ 1119 stream->codec_param.dir = info->dir; 1120 stream->codec_param.enc_mtu = PJMEDIA_MAX_MTU - sizeof(pjmedia_rtp_hdr); 1124 stream->info.codec_param->dir = info->dir; 1125 stream->info.codec_param->enc_mtu = PJMEDIA_MAX_MTU - 1126 sizeof(pjmedia_rtp_hdr); 1121 1127 1122 1128 /* Init and open the codec. */ … … 1124 1130 if (status != PJ_SUCCESS) 1125 1131 return status; 1126 status = stream->codec->op->open(stream->codec, &stream->codec_param);1132 status = stream->codec->op->open(stream->codec, stream->info.codec_param); 1127 1133 if (status != PJ_SUCCESS) 1128 1134 return status; … … 1140 1146 /* Validate the frame size */ 1141 1147 if (stream->frame_size == 0 || 1142 stream->frame_size > PJMEDIA_MAX_VIDEO_ FRAME_SIZE)1148 stream->frame_size > PJMEDIA_MAX_VIDEO_ENC_FRAME_SIZE) 1143 1149 { 1144 stream->frame_size = PJMEDIA_MAX_VIDEO_ FRAME_SIZE;1150 stream->frame_size = PJMEDIA_MAX_VIDEO_ENC_FRAME_SIZE; 1145 1151 } 1146 1152 … … 1151 1157 /* Create decoder channel */ 1152 1158 status = create_channel( pool, stream, PJMEDIA_DIR_DECODING, 1153 info-> codec_info.pt, info, &stream->dec);1159 info->rx_pt, info, &stream->dec); 1154 1160 if (status != PJ_SUCCESS) 1155 1161 return status; … … 1408 1414 1409 1415 /* 1416 * Get stream statistics. 1417 */ 1418 PJ_DEF(pj_status_t) pjmedia_vid_stream_get_stat( 1419 const pjmedia_vid_stream *stream, 1420 pjmedia_rtcp_stat *stat) 1421 { 1422 PJ_ASSERT_RETURN(stream && stat, PJ_EINVAL); 1423 1424 pj_memcpy(stat, &stream->rtcp.stat, sizeof(pjmedia_rtcp_stat)); 1425 return PJ_SUCCESS; 1426 } 1427 1428 1429 /* 1430 * Reset the stream statistics in the middle of a stream session. 1431 */ 1432 PJ_DEF(pj_status_t) pjmedia_vid_stream_reset_stat(pjmedia_vid_stream *stream) 1433 { 1434 PJ_ASSERT_RETURN(stream, PJ_EINVAL); 1435 1436 pjmedia_rtcp_init_stat(&stream->rtcp.stat); 1437 1438 return PJ_SUCCESS; 1439 } 1440 1441 1442 #if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0) 1443 /* 1444 * Get stream extended statistics. 1445 */ 1446 PJ_DEF(pj_status_t) pjmedia_stream_get_stat_xr( 1447 const pjmedia_vid_stream *stream, 1448 pjmedia_rtcp_xr_stat *stat) 1449 { 1450 PJ_ASSERT_RETURN(stream && stat, PJ_EINVAL); 1451 1452 if (stream->rtcp.xr_enabled) { 1453 pj_memcpy(stat, &stream->rtcp.xr_session.stat, 1454 sizeof(pjmedia_rtcp_xr_stat)); 1455 return PJ_SUCCESS; 1456 } 1457 return PJ_ENOTFOUND; 1458 } 1459 #endif 1460 1461 /* 1462 * Get jitter buffer state. 1463 */ 1464 PJ_DEF(pj_status_t) pjmedia_vid_stream_get_stat_jbuf( 1465 const pjmedia_vid_stream *stream, 1466 pjmedia_jb_state *state) 1467 { 1468 PJ_ASSERT_RETURN(stream && state, PJ_EINVAL); 1469 return pjmedia_jbuf_get_state(stream->jb, state); 1470 } 1471 1472 1473 /* 1474 * Get the stream info. 1475 */ 1476 PJ_DEF(pj_status_t) pjmedia_vid_stream_get_info( 1477 const pjmedia_vid_stream *stream, 1478 pjmedia_vid_stream_info *info) 1479 { 1480 PJ_ASSERT_RETURN(stream && info, PJ_EINVAL); 1481 pj_memcpy(info, &stream->info, sizeof(*info)); 1482 return PJ_SUCCESS; 1483 } 1484 1485 1486 /* 1410 1487 * Start stream. 1411 1488 */ … … 1434 1511 } 1435 1512 1436 1437 /*1438 * Get stream statistics.1439 */1440 PJ_DEF(pj_status_t) pjmedia_vid_stream_get_stat(1441 const pjmedia_vid_stream *stream,1442 pjmedia_rtcp_stat *stat)1443 {1444 PJ_ASSERT_RETURN(stream && stat, PJ_EINVAL);1445 1446 pj_memcpy(stat, &stream->rtcp.stat, sizeof(pjmedia_rtcp_stat));1447 return PJ_SUCCESS;1448 }1449 1450 1451 /*1452 * Reset the stream statistics in the middle of a stream session.1453 */1454 PJ_DEF(pj_status_t) pjmedia_vid_stream_reset_stat(pjmedia_vid_stream *stream)1455 {1456 PJ_ASSERT_RETURN(stream, PJ_EINVAL);1457 1458 pjmedia_rtcp_init_stat(&stream->rtcp.stat);1459 1460 return PJ_SUCCESS;1461 }1462 1463 1464 #if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0)1465 /*1466 * Get stream extended statistics.1467 */1468 PJ_DEF(pj_status_t) pjmedia_stream_get_stat_xr(1469 const pjmedia_vid_stream *stream,1470 pjmedia_rtcp_xr_stat *stat)1471 {1472 PJ_ASSERT_RETURN(stream && stat, PJ_EINVAL);1473 1474 if (stream->rtcp.xr_enabled) {1475 pj_memcpy(stat, &stream->rtcp.xr_session.stat,1476 sizeof(pjmedia_rtcp_xr_stat));1477 return PJ_SUCCESS;1478 }1479 return PJ_ENOTFOUND;1480 }1481 #endif1482 1483 /*1484 * Get jitter buffer state.1485 */1486 PJ_DEF(pj_status_t) pjmedia_vid_stream_get_stat_jbuf(1487 const pjmedia_vid_stream *stream,1488 pjmedia_jb_state *state)1489 {1490 PJ_ASSERT_RETURN(stream && state, PJ_EINVAL);1491 return pjmedia_jbuf_get_state(stream->jb, state);1492 }1493 1513 1494 1514 /* … … 1579 1599 */ 1580 1600 pt = pj_strtoul(&local_m->desc.fmt[0]); 1601 si->rx_pt = pt; 1581 1602 if (pt < 96) { 1582 1603 const pjmedia_vid_codec_info *p_info; … … 1660 1681 1661 1682 /* Get local fmtp for our decoder. */ 1662 pjmedia_stream_info_parse_fmtp(pool, local_m, pt,1683 pjmedia_stream_info_parse_fmtp(pool, local_m, si->rx_pt, 1663 1684 &si->codec_param->dec_fmtp); 1664 1685 … … 1718 1739 1719 1740 /* Media type must be audio */ 1720 if (pj_stricmp(&local_m->desc.media, &ID_VIDEO) == 0)1741 if (pj_stricmp(&local_m->desc.media, &ID_VIDEO) != 0) 1721 1742 return PJMEDIA_EINVALIMEDIATYPE; 1722 1743 -
pjproject/branches/projects/2.0-dev/pjmedia/src/test/vid_codec_test.c
r3392 r3425 21 21 { 22 22 codec_port_data_t *port_data = (codec_port_data_t*)port->port_data.pdata; 23 pjmedia_vid_codec *codec = port_data->codec;24 pjmedia_frame enc_frame;25 23 pj_status_t status; 26 24 27 enc_frame.buf = port_data->enc_buf;28 enc_frame.size = port_data->enc_buf_size;29 30 25 #if !BYPASS_CODEC 31 status = codec->op->encode(codec, frame, enc_frame.size, &enc_frame); 32 if (status != PJ_SUCCESS) goto on_error; 33 status = codec->op->decode(codec, &enc_frame, frame->size, frame); 34 if (status != PJ_SUCCESS) goto on_error; 26 { 27 pjmedia_vid_codec *codec = port_data->codec; 28 pjmedia_frame enc_frame; 29 30 enc_frame.buf = port_data->enc_buf; 31 enc_frame.size = port_data->enc_buf_size; 32 33 status = codec->op->encode(codec, frame, enc_frame.size, &enc_frame); 34 if (status != PJ_SUCCESS) goto on_error; 35 status = codec->op->decode(codec, &enc_frame, frame->size, frame); 36 if (status != PJ_SUCCESS) goto on_error; 37 } 35 38 #endif 36 39 … … 88 91 pjmedia_format_id raw_fmt_id) 89 92 { 93 const pj_str_t port_name = {"codec", 5}; 90 94 91 95 pjmedia_vid_codec *codec=NULL; … … 163 167 } 164 168 169 /* Prepare codec */ 170 { 171 pj_str_t codec_id_st; 172 unsigned info_cnt = 1; 173 const pjmedia_vid_codec_info *codec_info; 174 175 /* Lookup codec */ 176 pj_cstr(&codec_id_st, codec_id); 177 status = pjmedia_vid_codec_mgr_find_codecs_by_id(NULL, &codec_id_st, 178 &info_cnt, 179 &codec_info, NULL); 180 if (status != PJ_SUCCESS) { 181 rc = 245; goto on_return; 182 } 183 status = pjmedia_vid_codec_mgr_get_default_param(NULL, codec_info, 184 &codec_param); 185 if (status != PJ_SUCCESS) { 186 rc = 246; goto on_return; 187 } 188 189 #if !BYPASS_CODEC 190 191 /* Open codec */ 192 status = pjmedia_vid_codec_mgr_alloc_codec(NULL, codec_info, 193 &codec); 194 if (status != PJ_SUCCESS) { 195 rc = 250; goto on_return; 196 } 197 198 status = codec->op->init(codec, pool); 199 if (status != PJ_SUCCESS) { 200 rc = 251; goto on_return; 201 } 202 203 codec_param.dec_fmt.id = raw_fmt_id; 204 status = codec->op->open(codec, &codec_param); 205 if (status != PJ_SUCCESS) { 206 rc = 252; goto on_return; 207 } 208 209 #endif /* !BYPASS_CODEC */ 210 } 211 212 165 213 pjmedia_vid_port_param_default(&vport_param); 166 214 … … 171 219 rc = 220; goto on_return; 172 220 } 221 pjmedia_format_copy(&vport_param.vidparam.fmt, &codec_param.dec_fmt); 173 222 vport_param.vidparam.fmt.id = raw_fmt_id; 174 223 vport_param.vidparam.dir = PJMEDIA_DIR_CAPTURE; … … 201 250 } 202 251 203 /* Prepare codec */ 204 { 205 pj_str_t codec_id_st; 206 unsigned info_cnt = 1; 207 const pjmedia_vid_codec_info *codec_info; 208 pj_str_t port_name = {"codec", 5}; 209 pj_uint8_t *enc_buf = NULL; 210 pj_size_t enc_buf_size = 0; 211 212 213 /* Lookup codec */ 214 pj_cstr(&codec_id_st, codec_id); 215 status = pjmedia_vid_codec_mgr_find_codecs_by_id(NULL, &codec_id_st, 216 &info_cnt, 217 &codec_info, NULL); 218 if (status != PJ_SUCCESS) { 219 rc = 245; goto on_return; 220 } 221 status = pjmedia_vid_codec_mgr_get_default_param(NULL, codec_info, 222 &codec_param); 223 if (status != PJ_SUCCESS) { 224 rc = 246; goto on_return; 225 } 226 227 pjmedia_format_copy(&codec_param.dec_fmt, &vport_param.vidparam.fmt); 228 229 #if !BYPASS_CODEC 230 231 /* Open codec */ 232 status = pjmedia_vid_codec_mgr_alloc_codec(NULL, codec_info, 233 &codec); 234 if (status != PJ_SUCCESS) { 235 rc = 250; goto on_return; 236 } 237 238 status = codec->op->init(codec, pool); 239 if (status != PJ_SUCCESS) { 240 rc = 251; goto on_return; 241 } 242 243 status = codec->op->open(codec, &codec_param); 244 if (status != PJ_SUCCESS) { 245 rc = 252; goto on_return; 246 } 247 248 /* Alloc encoding buffer */ 249 enc_buf_size = codec_param.dec_fmt.det.vid.size.w * 250 codec_param.dec_fmt.det.vid.size.h * 4 251 + 16; /*< padding, just in case */ 252 enc_buf = pj_pool_alloc(pool,enc_buf_size); 253 254 #endif /* !BYPASS_CODEC */ 255 256 /* Init codec port */ 257 pj_bzero(&codec_port, sizeof(codec_port)); 258 status = pjmedia_port_info_init2(&codec_port.info, &port_name, 0x1234, 259 PJMEDIA_DIR_ENCODING, 260 &codec_param.dec_fmt); 261 if (status != PJ_SUCCESS) { 262 rc = 260; goto on_return; 263 } 264 codec_port_data.codec = codec; 265 codec_port_data.dn_port = pjmedia_vid_port_get_passive_port(renderer); 266 codec_port_data.enc_buf = enc_buf; 267 codec_port_data.enc_buf_size = enc_buf_size; 268 269 codec_port.put_frame = &codec_put_frame; 270 codec_port.port_data.pdata = &codec_port_data; 271 } 272 252 /* Init codec port */ 253 pj_bzero(&codec_port, sizeof(codec_port)); 254 status = pjmedia_port_info_init2(&codec_port.info, &port_name, 0x1234, 255 PJMEDIA_DIR_ENCODING, 256 &codec_param.dec_fmt); 257 if (status != PJ_SUCCESS) { 258 rc = 260; goto on_return; 259 } 260 261 codec_port_data.codec = codec; 262 codec_port_data.dn_port = pjmedia_vid_port_get_passive_port(renderer); 263 codec_port_data.enc_buf_size = codec_param.dec_fmt.det.vid.size.w * 264 codec_param.dec_fmt.det.vid.size.h * 4; 265 codec_port_data.enc_buf = pj_pool_alloc(pool, 266 codec_port_data.enc_buf_size); 267 268 codec_port.put_frame = &codec_put_frame; 269 codec_port.port_data.pdata = &codec_port_data; 273 270 274 271 /* Connect capture to codec port */ … … 280 277 } 281 278 282 PJ_LOG(3, (THIS_FILE, " starting codec test: %c%c%c%c<->%s %dx%d", 279 #if BYPASS_CODEC 280 PJ_LOG(3, (THIS_FILE, " starting loopback test: %c%c%c%c %dx%d", 281 ((raw_fmt_id & 0x000000FF) >> 0), 282 ((raw_fmt_id & 0x0000FF00) >> 8), 283 ((raw_fmt_id & 0x00FF0000) >> 16), 284 ((raw_fmt_id & 0xFF000000) >> 24), 285 codec_param.dec_fmt.det.vid.size.w, 286 codec_param.dec_fmt.det.vid.size.h 287 )); 288 #else 289 PJ_LOG(3, (THIS_FILE, " starting codec test: %c%c%c%c<->%.*s %dx%d", 283 290 ((codec_param.dec_fmt.id & 0x000000FF) >> 0), 284 291 ((codec_param.dec_fmt.id & 0x0000FF00) >> 8), 285 292 ((codec_param.dec_fmt.id & 0x00FF0000) >> 16), 286 293 ((codec_param.dec_fmt.id & 0xFF000000) >> 24), 287 codec_id, 294 codec_info->encoding_name.slen, 295 codec_info->encoding_name.ptr, 288 296 codec_param.dec_fmt.det.vid.size.w, 289 297 codec_param.dec_fmt.det.vid.size.h 290 298 )); 299 #endif 291 300 292 301 /* Start streaming.. */ … … 328 337 int rc = 0; 329 338 pj_status_t status; 339 int orig_log_level; 340 341 orig_log_level = pj_log_get_level(); 342 pj_log_set_level(6); 330 343 331 344 PJ_LOG(3, (THIS_FILE, "Performing video codec tests..")); … … 345 358 goto on_return; 346 359 347 rc = encode_decode_test(pool, " mjpeg", 0);360 rc = encode_decode_test(pool, "h263", 0); 348 361 if (rc != 0) 349 362 goto on_return; … … 353 366 pjmedia_vid_subsys_shutdown(); 354 367 pj_pool_release(pool); 368 pj_log_set_level(orig_log_level); 355 369 356 370 return rc; -
pjproject/branches/projects/2.0-dev/pjmedia/src/test/vid_dev_test.c
r3401 r3425 58 58 } 59 59 60 static pj_status_t vid_event_cb(pjmedia_vid_ stream *stream,60 static pj_status_t vid_event_cb(pjmedia_vid_dev_stream *stream, 61 61 void *user_data, 62 62 pjmedia_vid_event *event) -
pjproject/branches/projects/2.0-dev/pjproject-vs8.sln
r3394 r3425 109 109 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpjproject", "pjsip-apps\build\libpjproject.vcproj", "{23D7679C-764C-4E02-8B29-BB882CEEEFE2}" 110 110 ProjectSection(ProjectDependencies) = postProject 111 {2BB84911-C1B4-4747-B93D-36AA82CC5031} = {2BB84911-C1B4-4747-B93D-36AA82CC5031} 112 {2A3F241E-682C-47E1-9543-DC28708B406A} = {2A3F241E-682C-47E1-9543-DC28708B406A} 113 {4BF51C21-5A30-423B-82FE-1ED410E5769D} = {4BF51C21-5A30-423B-82FE-1ED410E5769D} 114 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4} = {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4} 115 {4281CA5E-1D48-45D4-A991-2718A454B4BA} = {4281CA5E-1D48-45D4-A991-2718A454B4BA} 116 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693} = {FE07F272-AE7F-4549-9E9F-EF9B80CB1693} 117 {6794B975-4E84-4F49-B2DC-C31F2224E03E} = {6794B975-4E84-4F49-B2DC-C31F2224E03E} 118 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65} = {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65} 119 {3CF9FFA9-8387-4635-9D1B-E7944CBEFEAA} = {3CF9FFA9-8387-4635-9D1B-E7944CBEFEAA} 120 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9} = {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9} 121 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B} = {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B} 122 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0} = {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0} 123 {B8719FD5-E8A6-4A36-943C-891D07F5DD21} = {B8719FD5-E8A6-4A36-943C-891D07F5DD21} 124 {DA0E03ED-53A7-4050-8A85-90541C5509F8} = {DA0E03ED-53A7-4050-8A85-90541C5509F8} 125 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D} = {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D} 126 {E53AA5FF-B737-40AA-BD13-387EFA99023D} = {E53AA5FF-B737-40AA-BD13-387EFA99023D} 127 {A1989FF3-9894-40F4-B5A6-6EA364476E45} = {A1989FF3-9894-40F4-B5A6-6EA364476E45} 111 128 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858} = {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858} 112 {A1989FF3-9894-40F4-B5A6-6EA364476E45} = {A1989FF3-9894-40F4-B5A6-6EA364476E45}113 {E53AA5FF-B737-40AA-BD13-387EFA99023D} = {E53AA5FF-B737-40AA-BD13-387EFA99023D}114 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37} = {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}115 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D} = {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}116 {DA0E03ED-53A7-4050-8A85-90541C5509F8} = {DA0E03ED-53A7-4050-8A85-90541C5509F8}117 {B8719FD5-E8A6-4A36-943C-891D07F5DD21} = {B8719FD5-E8A6-4A36-943C-891D07F5DD21}118 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0} = {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}119 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B} = {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}120 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9} = {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}121 {3CF9FFA9-8387-4635-9D1B-E7944CBEFEAA} = {3CF9FFA9-8387-4635-9D1B-E7944CBEFEAA}122 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65} = {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}123 {6794B975-4E84-4F49-B2DC-C31F2224E03E} = {6794B975-4E84-4F49-B2DC-C31F2224E03E}124 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693} = {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}125 {4281CA5E-1D48-45D4-A991-2718A454B4BA} = {4281CA5E-1D48-45D4-A991-2718A454B4BA}126 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4} = {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}127 {4BF51C21-5A30-423B-82FE-1ED410E5769D} = {4BF51C21-5A30-423B-82FE-1ED410E5769D}128 {2A3F241E-682C-47E1-9543-DC28708B406A} = {2A3F241E-682C-47E1-9543-DC28708B406A}129 {2BB84911-C1B4-4747-B93D-36AA82CC5031} = {2BB84911-C1B4-4747-B93D-36AA82CC5031}130 129 EndProjectSection 131 130 EndProject -
pjproject/branches/projects/2.0-dev/pjsip-apps/build/Samples-vc.mak
r3401 r3425 89 89 $(BINDIR)\strerror.exe \ 90 90 $(BINDIR)\tonegen.exe \ 91 $(BINDIR)\v streamutil.exe91 $(BINDIR)\vid_streamutil.exe 92 92 93 93 -
pjproject/branches/projects/2.0-dev/pjsip-apps/build/Samples.mak
r3401 r3425 41 41 strerror \ 42 42 tonegen \ 43 v streamutil43 vid_streamutil 44 44 45 45 EXES := $(foreach file, $(SAMPLES), $(BINDIR)/$(file)$(HOST_EXE)) -
pjproject/branches/projects/2.0-dev/pjsip-apps/build/samples.vcproj
r3401 r3425 137 137 </Configuration> 138 138 <Configuration 139 Name="Release|Windows Mobile 6 Standard SDK (ARMV4I)" 140 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)" 141 IntermediateDirectory="$(OutDir)" 142 ConfigurationType="0" 143 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 144 UseOfMFC="0" 145 ATLMinimizesCRunTimeLibraryUsage="false" 146 BuildLogFile="" 147 > 148 <Tool 149 Name="VCNMakeTool" 150 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8" 151 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 /a" 152 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 clean" 153 Output="All samples" 154 PreprocessorDefinitions="" 155 IncludeSearchPath="" 156 ForcedIncludes="" 157 AssemblySearchPath="" 158 ForcedUsingAssemblies="" 159 CompileAsManaged="" 160 /> 161 <Tool 162 Name="VCCLCompilerTool" 163 ExecutionBucket="7" 164 /> 165 <Tool 166 Name="VCCodeSignTool" 167 /> 168 <DeploymentTool 169 ForceDirty="-1" 170 RemoteDirectory="" 171 RegisterOutput="0" 172 AdditionalFiles="" 173 /> 174 <DebuggerTool 175 /> 176 </Configuration> 177 <Configuration 178 Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)" 179 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)" 180 IntermediateDirectory="$(OutDir)" 181 ConfigurationType="0" 182 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 183 UseOfMFC="0" 184 ATLMinimizesCRunTimeLibraryUsage="false" 185 BuildLogFile="" 186 > 187 <Tool 188 Name="VCNMakeTool" 189 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8" 190 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 /a" 191 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 clean" 192 Output="All samples" 193 PreprocessorDefinitions="" 194 IncludeSearchPath="" 195 ForcedIncludes="" 196 AssemblySearchPath="" 197 ForcedUsingAssemblies="" 198 CompileAsManaged="" 199 /> 200 <Tool 201 Name="VCCLCompilerTool" 202 ExecutionBucket="7" 203 /> 204 <Tool 205 Name="VCCodeSignTool" 206 /> 207 <DeploymentTool 208 ForceDirty="-1" 209 RemoteDirectory="" 210 RegisterOutput="0" 211 AdditionalFiles="" 212 /> 213 <DebuggerTool 214 /> 215 </Configuration> 216 <Configuration 217 Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" 218 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)" 219 IntermediateDirectory="$(OutDir)" 220 ConfigurationType="0" 221 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 222 UseOfMFC="0" 223 ATLMinimizesCRunTimeLibraryUsage="false" 224 BuildLogFile="" 225 > 226 <Tool 227 Name="VCNMakeTool" 228 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8" 229 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 /a" 230 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 clean" 231 Output="All samples" 232 PreprocessorDefinitions="" 233 IncludeSearchPath="" 234 ForcedIncludes="" 235 AssemblySearchPath="" 236 ForcedUsingAssemblies="" 237 CompileAsManaged="" 238 /> 239 <Tool 240 Name="VCCLCompilerTool" 241 ExecutionBucket="7" 242 /> 243 <Tool 244 Name="VCCodeSignTool" 245 /> 246 <DeploymentTool 247 ForceDirty="-1" 248 RemoteDirectory="" 249 RegisterOutput="0" 250 AdditionalFiles="" 251 /> 252 <DebuggerTool 253 /> 254 </Configuration> 255 <Configuration 256 Name="Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)" 257 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)" 258 IntermediateDirectory="$(OutDir)" 259 ConfigurationType="0" 260 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 261 UseOfMFC="0" 262 ATLMinimizesCRunTimeLibraryUsage="false" 263 BuildLogFile="" 264 > 265 <Tool 266 Name="VCNMakeTool" 267 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8" 268 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 /a" 269 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 clean" 270 Output="All samples" 271 PreprocessorDefinitions="" 272 IncludeSearchPath="" 273 ForcedIncludes="" 274 AssemblySearchPath="" 275 ForcedUsingAssemblies="" 276 CompileAsManaged="" 277 /> 278 <Tool 279 Name="VCCLCompilerTool" 280 ExecutionBucket="7" 281 /> 282 <Tool 283 Name="VCCodeSignTool" 284 /> 285 <DeploymentTool 286 ForceDirty="-1" 287 RemoteDirectory="" 288 RegisterOutput="0" 289 AdditionalFiles="" 290 /> 291 <DebuggerTool 292 /> 293 </Configuration> 294 <Configuration 139 295 Name="Debug|Win32" 140 296 OutputDirectory=".\output\$(ProjectName)-i386-$(PlatformName)-vs8-$(ConfigurationName)" … … 239 395 </Configuration> 240 396 <Configuration 397 Name="Debug|Windows Mobile 6 Standard SDK (ARMV4I)" 398 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)" 399 IntermediateDirectory="$(OutDir)" 400 ConfigurationType="0" 401 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 402 UseOfMFC="0" 403 ATLMinimizesCRunTimeLibraryUsage="false" 404 BuildLogFile="" 405 > 406 <Tool 407 Name="VCNMakeTool" 408 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8" 409 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 /a" 410 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 clean" 411 Output="All samples" 412 PreprocessorDefinitions="" 413 IncludeSearchPath="" 414 ForcedIncludes="" 415 AssemblySearchPath="" 416 ForcedUsingAssemblies="" 417 CompileAsManaged="" 418 /> 419 <Tool 420 Name="VCCLCompilerTool" 421 ExecutionBucket="7" 422 /> 423 <Tool 424 Name="VCCodeSignTool" 425 /> 426 <DeploymentTool 427 ForceDirty="-1" 428 RemoteDirectory="" 429 RegisterOutput="0" 430 AdditionalFiles="" 431 /> 432 <DebuggerTool 433 /> 434 </Configuration> 435 <Configuration 436 Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)" 437 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)" 438 IntermediateDirectory="$(OutDir)" 439 ConfigurationType="0" 440 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 441 UseOfMFC="0" 442 ATLMinimizesCRunTimeLibraryUsage="false" 443 BuildLogFile="" 444 > 445 <Tool 446 Name="VCNMakeTool" 447 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8" 448 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 /a" 449 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 clean" 450 Output="All samples" 451 PreprocessorDefinitions="" 452 IncludeSearchPath="" 453 ForcedIncludes="" 454 AssemblySearchPath="" 455 ForcedUsingAssemblies="" 456 CompileAsManaged="" 457 /> 458 <Tool 459 Name="VCCLCompilerTool" 460 ExecutionBucket="7" 461 /> 462 <Tool 463 Name="VCCodeSignTool" 464 /> 465 <DeploymentTool 466 ForceDirty="-1" 467 RemoteDirectory="" 468 RegisterOutput="0" 469 AdditionalFiles="" 470 /> 471 <DebuggerTool 472 /> 473 </Configuration> 474 <Configuration 475 Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" 476 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)" 477 IntermediateDirectory="$(OutDir)" 478 ConfigurationType="0" 479 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 480 UseOfMFC="0" 481 ATLMinimizesCRunTimeLibraryUsage="false" 482 BuildLogFile="" 483 > 484 <Tool 485 Name="VCNMakeTool" 486 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8" 487 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 /a" 488 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 clean" 489 Output="All samples" 490 PreprocessorDefinitions="" 491 IncludeSearchPath="" 492 ForcedIncludes="" 493 AssemblySearchPath="" 494 ForcedUsingAssemblies="" 495 CompileAsManaged="" 496 /> 497 <Tool 498 Name="VCCLCompilerTool" 499 ExecutionBucket="7" 500 /> 501 <Tool 502 Name="VCCodeSignTool" 503 /> 504 <DeploymentTool 505 ForceDirty="-1" 506 RemoteDirectory="" 507 RegisterOutput="0" 508 AdditionalFiles="" 509 /> 510 <DebuggerTool 511 /> 512 </Configuration> 513 <Configuration 514 Name="Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)" 515 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)" 516 IntermediateDirectory="$(OutDir)" 517 ConfigurationType="0" 518 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 519 UseOfMFC="0" 520 ATLMinimizesCRunTimeLibraryUsage="false" 521 BuildLogFile="" 522 > 523 <Tool 524 Name="VCNMakeTool" 525 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8" 526 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 /a" 527 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 clean" 528 Output="All samples" 529 PreprocessorDefinitions="" 530 IncludeSearchPath="" 531 ForcedIncludes="" 532 AssemblySearchPath="" 533 ForcedUsingAssemblies="" 534 CompileAsManaged="" 535 /> 536 <Tool 537 Name="VCCLCompilerTool" 538 ExecutionBucket="7" 539 /> 540 <Tool 541 Name="VCCodeSignTool" 542 /> 543 <DeploymentTool 544 ForceDirty="-1" 545 RemoteDirectory="" 546 RegisterOutput="0" 547 AdditionalFiles="" 548 /> 549 <DebuggerTool 550 /> 551 </Configuration> 552 <Configuration 241 553 Name="Debug-Static|Win32" 242 554 OutputDirectory=".\output\$(ProjectName)-i386-$(PlatformName)-vs8-$(ConfigurationName)" … … 341 653 </Configuration> 342 654 <Configuration 655 Name="Debug-Static|Windows Mobile 6 Standard SDK (ARMV4I)" 656 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)" 657 IntermediateDirectory="$(OutDir)" 658 ConfigurationType="0" 659 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 660 UseOfMFC="0" 661 ATLMinimizesCRunTimeLibraryUsage="false" 662 BuildLogFile="" 663 > 664 <Tool 665 Name="VCNMakeTool" 666 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8" 667 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 /a" 668 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 clean" 669 Output="All samples" 670 PreprocessorDefinitions="" 671 IncludeSearchPath="" 672 ForcedIncludes="" 673 AssemblySearchPath="" 674 ForcedUsingAssemblies="" 675 CompileAsManaged="" 676 /> 677 <Tool 678 Name="VCCLCompilerTool" 679 ExecutionBucket="7" 680 /> 681 <Tool 682 Name="VCCodeSignTool" 683 /> 684 <DeploymentTool 685 ForceDirty="-1" 686 RemoteDirectory="" 687 RegisterOutput="0" 688 AdditionalFiles="" 689 /> 690 <DebuggerTool 691 /> 692 </Configuration> 693 <Configuration 694 Name="Debug-Static|Windows Mobile 6 Professional SDK (ARMV4I)" 695 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)" 696 IntermediateDirectory="$(OutDir)" 697 ConfigurationType="0" 698 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 699 UseOfMFC="0" 700 ATLMinimizesCRunTimeLibraryUsage="false" 701 BuildLogFile="" 702 > 703 <Tool 704 Name="VCNMakeTool" 705 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8" 706 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 /a" 707 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 clean" 708 Output="All samples" 709 PreprocessorDefinitions="" 710 IncludeSearchPath="" 711 ForcedIncludes="" 712 AssemblySearchPath="" 713 ForcedUsingAssemblies="" 714 CompileAsManaged="" 715 /> 716 <Tool 717 Name="VCCLCompilerTool" 718 ExecutionBucket="7" 719 /> 720 <Tool 721 Name="VCCodeSignTool" 722 /> 723 <DeploymentTool 724 ForceDirty="-1" 725 RemoteDirectory="" 726 RegisterOutput="0" 727 AdditionalFiles="" 728 /> 729 <DebuggerTool 730 /> 731 </Configuration> 732 <Configuration 733 Name="Debug-Static|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" 734 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)" 735 IntermediateDirectory="$(OutDir)" 736 ConfigurationType="0" 737 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 738 UseOfMFC="0" 739 ATLMinimizesCRunTimeLibraryUsage="false" 740 BuildLogFile="" 741 > 742 <Tool 743 Name="VCNMakeTool" 744 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8" 745 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 /a" 746 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 clean" 747 Output="All samples" 748 PreprocessorDefinitions="" 749 IncludeSearchPath="" 750 ForcedIncludes="" 751 AssemblySearchPath="" 752 ForcedUsingAssemblies="" 753 CompileAsManaged="" 754 /> 755 <Tool 756 Name="VCCLCompilerTool" 757 ExecutionBucket="7" 758 /> 759 <Tool 760 Name="VCCodeSignTool" 761 /> 762 <DeploymentTool 763 ForceDirty="-1" 764 RemoteDirectory="" 765 RegisterOutput="0" 766 AdditionalFiles="" 767 /> 768 <DebuggerTool 769 /> 770 </Configuration> 771 <Configuration 772 Name="Debug-Static|Windows Mobile 5.0 Smartphone SDK (ARMV4I)" 773 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)" 774 IntermediateDirectory="$(OutDir)" 775 ConfigurationType="0" 776 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 777 UseOfMFC="0" 778 ATLMinimizesCRunTimeLibraryUsage="false" 779 BuildLogFile="" 780 > 781 <Tool 782 Name="VCNMakeTool" 783 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8" 784 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 /a" 785 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 clean" 786 Output="All samples" 787 PreprocessorDefinitions="" 788 IncludeSearchPath="" 789 ForcedIncludes="" 790 AssemblySearchPath="" 791 ForcedUsingAssemblies="" 792 CompileAsManaged="" 793 /> 794 <Tool 795 Name="VCCLCompilerTool" 796 ExecutionBucket="7" 797 /> 798 <Tool 799 Name="VCCodeSignTool" 800 /> 801 <DeploymentTool 802 ForceDirty="-1" 803 RemoteDirectory="" 804 RegisterOutput="0" 805 AdditionalFiles="" 806 /> 807 <DebuggerTool 808 /> 809 </Configuration> 810 <Configuration 343 811 Name="Release-Dynamic|Win32" 344 812 OutputDirectory=".\output\$(ProjectName)-i386-$(PlatformName)-vs8-$(ConfigurationName)" … … 443 911 </Configuration> 444 912 <Configuration 913 Name="Release-Dynamic|Windows Mobile 6 Standard SDK (ARMV4I)" 914 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)" 915 IntermediateDirectory="$(OutDir)" 916 ConfigurationType="0" 917 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 918 UseOfMFC="0" 919 ATLMinimizesCRunTimeLibraryUsage="false" 920 BuildLogFile="" 921 > 922 <Tool 923 Name="VCNMakeTool" 924 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8" 925 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 /a" 926 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 clean" 927 Output="All samples" 928 PreprocessorDefinitions="" 929 IncludeSearchPath="" 930 ForcedIncludes="" 931 AssemblySearchPath="" 932 ForcedUsingAssemblies="" 933 CompileAsManaged="" 934 /> 935 <Tool 936 Name="VCCLCompilerTool" 937 ExecutionBucket="7" 938 /> 939 <Tool 940 Name="VCCodeSignTool" 941 /> 942 <DeploymentTool 943 ForceDirty="-1" 944 RemoteDirectory="" 945 RegisterOutput="0" 946 AdditionalFiles="" 947 /> 948 <DebuggerTool 949 /> 950 </Configuration> 951 <Configuration 952 Name="Release-Dynamic|Windows Mobile 6 Professional SDK (ARMV4I)" 953 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)" 954 IntermediateDirectory="$(OutDir)" 955 ConfigurationType="0" 956 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 957 UseOfMFC="0" 958 ATLMinimizesCRunTimeLibraryUsage="false" 959 BuildLogFile="" 960 > 961 <Tool 962 Name="VCNMakeTool" 963 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8" 964 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 /a" 965 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 clean" 966 Output="All samples" 967 PreprocessorDefinitions="" 968 IncludeSearchPath="" 969 ForcedIncludes="" 970 AssemblySearchPath="" 971 ForcedUsingAssemblies="" 972 CompileAsManaged="" 973 /> 974 <Tool 975 Name="VCCLCompilerTool" 976 ExecutionBucket="7" 977 /> 978 <Tool 979 Name="VCCodeSignTool" 980 /> 981 <DeploymentTool 982 ForceDirty="-1" 983 RemoteDirectory="" 984 RegisterOutput="0" 985 AdditionalFiles="" 986 /> 987 <DebuggerTool 988 /> 989 </Configuration> 990 <Configuration 991 Name="Release-Dynamic|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" 992 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)" 993 IntermediateDirectory="$(OutDir)" 994 ConfigurationType="0" 995 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 996 UseOfMFC="0" 997 ATLMinimizesCRunTimeLibraryUsage="false" 998 BuildLogFile="" 999 > 1000 <Tool 1001 Name="VCNMakeTool" 1002 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8" 1003 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 /a" 1004 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 clean" 1005 Output="All samples" 1006 PreprocessorDefinitions="" 1007 IncludeSearchPath="" 1008 ForcedIncludes="" 1009 AssemblySearchPath="" 1010 ForcedUsingAssemblies="" 1011 CompileAsManaged="" 1012 /> 1013 <Tool 1014 Name="VCCLCompilerTool" 1015 ExecutionBucket="7" 1016 /> 1017 <Tool 1018 Name="VCCodeSignTool" 1019 /> 1020 <DeploymentTool 1021 ForceDirty="-1" 1022 RemoteDirectory="" 1023 RegisterOutput="0" 1024 AdditionalFiles="" 1025 /> 1026 <DebuggerTool 1027 /> 1028 </Configuration> 1029 <Configuration 1030 Name="Release-Dynamic|Windows Mobile 5.0 Smartphone SDK (ARMV4I)" 1031 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)" 1032 IntermediateDirectory="$(OutDir)" 1033 ConfigurationType="0" 1034 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 1035 UseOfMFC="0" 1036 ATLMinimizesCRunTimeLibraryUsage="false" 1037 BuildLogFile="" 1038 > 1039 <Tool 1040 Name="VCNMakeTool" 1041 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8" 1042 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 /a" 1043 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 clean" 1044 Output="All samples" 1045 PreprocessorDefinitions="" 1046 IncludeSearchPath="" 1047 ForcedIncludes="" 1048 AssemblySearchPath="" 1049 ForcedUsingAssemblies="" 1050 CompileAsManaged="" 1051 /> 1052 <Tool 1053 Name="VCCLCompilerTool" 1054 ExecutionBucket="7" 1055 /> 1056 <Tool 1057 Name="VCCodeSignTool" 1058 /> 1059 <DeploymentTool 1060 ForceDirty="-1" 1061 RemoteDirectory="" 1062 RegisterOutput="0" 1063 AdditionalFiles="" 1064 /> 1065 <DebuggerTool 1066 /> 1067 </Configuration> 1068 <Configuration 445 1069 Name="Debug-Dynamic|Win32" 446 1070 OutputDirectory=".\output\$(ProjectName)-i386-$(PlatformName)-vs8-$(ConfigurationName)" … … 545 1169 </Configuration> 546 1170 <Configuration 1171 Name="Debug-Dynamic|Windows Mobile 6 Standard SDK (ARMV4I)" 1172 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)" 1173 IntermediateDirectory="$(OutDir)" 1174 ConfigurationType="0" 1175 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 1176 UseOfMFC="0" 1177 ATLMinimizesCRunTimeLibraryUsage="false" 1178 BuildLogFile="" 1179 > 1180 <Tool 1181 Name="VCNMakeTool" 1182 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8" 1183 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 /a" 1184 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 clean" 1185 Output="All samples" 1186 PreprocessorDefinitions="" 1187 IncludeSearchPath="" 1188 ForcedIncludes="" 1189 AssemblySearchPath="" 1190 ForcedUsingAssemblies="" 1191 CompileAsManaged="" 1192 /> 1193 <Tool 1194 Name="VCCLCompilerTool" 1195 ExecutionBucket="7" 1196 /> 1197 <Tool 1198 Name="VCCodeSignTool" 1199 /> 1200 <DeploymentTool 1201 ForceDirty="-1" 1202 RemoteDirectory="" 1203 RegisterOutput="0" 1204 AdditionalFiles="" 1205 /> 1206 <DebuggerTool 1207 /> 1208 </Configuration> 1209 <Configuration 1210 Name="Debug-Dynamic|Windows Mobile 6 Professional SDK (ARMV4I)" 1211 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)" 1212 IntermediateDirectory="$(OutDir)" 1213 ConfigurationType="0" 1214 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 1215 UseOfMFC="0" 1216 ATLMinimizesCRunTimeLibraryUsage="false" 1217 BuildLogFile="" 1218 > 1219 <Tool 1220 Name="VCNMakeTool" 1221 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8" 1222 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 /a" 1223 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 clean" 1224 Output="All samples" 1225 PreprocessorDefinitions="" 1226 IncludeSearchPath="" 1227 ForcedIncludes="" 1228 AssemblySearchPath="" 1229 ForcedUsingAssemblies="" 1230 CompileAsManaged="" 1231 /> 1232 <Tool 1233 Name="VCCLCompilerTool" 1234 ExecutionBucket="7" 1235 /> 1236 <Tool 1237 Name="VCCodeSignTool" 1238 /> 1239 <DeploymentTool 1240 ForceDirty="-1" 1241 RemoteDirectory="" 1242 RegisterOutput="0" 1243 AdditionalFiles="" 1244 /> 1245 <DebuggerTool 1246 /> 1247 </Configuration> 1248 <Configuration 1249 Name="Debug-Dynamic|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" 1250 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)" 1251 IntermediateDirectory="$(OutDir)" 1252 ConfigurationType="0" 1253 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 1254 UseOfMFC="0" 1255 ATLMinimizesCRunTimeLibraryUsage="false" 1256 BuildLogFile="" 1257 > 1258 <Tool 1259 Name="VCNMakeTool" 1260 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8" 1261 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 /a" 1262 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 clean" 1263 Output="All samples" 1264 PreprocessorDefinitions="" 1265 IncludeSearchPath="" 1266 ForcedIncludes="" 1267 AssemblySearchPath="" 1268 ForcedUsingAssemblies="" 1269 CompileAsManaged="" 1270 /> 1271 <Tool 1272 Name="VCCLCompilerTool" 1273 ExecutionBucket="7" 1274 /> 1275 <Tool 1276 Name="VCCodeSignTool" 1277 /> 1278 <DeploymentTool 1279 ForceDirty="-1" 1280 RemoteDirectory="" 1281 RegisterOutput="0" 1282 AdditionalFiles="" 1283 /> 1284 <DebuggerTool 1285 /> 1286 </Configuration> 1287 <Configuration 1288 Name="Debug-Dynamic|Windows Mobile 5.0 Smartphone SDK (ARMV4I)" 1289 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)" 1290 IntermediateDirectory="$(OutDir)" 1291 ConfigurationType="0" 1292 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 1293 UseOfMFC="0" 1294 ATLMinimizesCRunTimeLibraryUsage="false" 1295 BuildLogFile="" 1296 > 1297 <Tool 1298 Name="VCNMakeTool" 1299 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8" 1300 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 /a" 1301 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 clean" 1302 Output="All samples" 1303 PreprocessorDefinitions="" 1304 IncludeSearchPath="" 1305 ForcedIncludes="" 1306 AssemblySearchPath="" 1307 ForcedUsingAssemblies="" 1308 CompileAsManaged="" 1309 /> 1310 <Tool 1311 Name="VCCLCompilerTool" 1312 ExecutionBucket="7" 1313 /> 1314 <Tool 1315 Name="VCCodeSignTool" 1316 /> 1317 <DeploymentTool 1318 ForceDirty="-1" 1319 RemoteDirectory="" 1320 RegisterOutput="0" 1321 AdditionalFiles="" 1322 /> 1323 <DebuggerTool 1324 /> 1325 </Configuration> 1326 <Configuration 547 1327 Name="Release-Static|Win32" 548 1328 OutputDirectory=".\output\$(ProjectName)-i386-$(PlatformName)-vs8-$(ConfigurationName)" … … 622 1402 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-static VC_VER=8 /a" 623 1403 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-static VC_VER=8 clean" 624 Output="All samples"625 PreprocessorDefinitions=""626 IncludeSearchPath=""627 ForcedIncludes=""628 AssemblySearchPath=""629 ForcedUsingAssemblies=""630 CompileAsManaged=""631 />632 <Tool633 Name="VCCLCompilerTool"634 ExecutionBucket="7"635 />636 <Tool637 Name="VCCodeSignTool"638 />639 <DeploymentTool640 ForceDirty="-1"641 RemoteDirectory=""642 RegisterOutput="0"643 AdditionalFiles=""644 />645 <DebuggerTool646 />647 </Configuration>648 <Configuration649 Name="Release|Windows Mobile 6 Standard SDK (ARMV4I)"650 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)"651 IntermediateDirectory="$(OutDir)"652 ConfigurationType="0"653 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"654 UseOfMFC="0"655 ATLMinimizesCRunTimeLibraryUsage="false"656 BuildLogFile=""657 >658 <Tool659 Name="VCNMakeTool"660 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8"661 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 /a"662 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 clean"663 Output="All samples"664 PreprocessorDefinitions=""665 IncludeSearchPath=""666 ForcedIncludes=""667 AssemblySearchPath=""668 ForcedUsingAssemblies=""669 CompileAsManaged=""670 />671 <Tool672 Name="VCCLCompilerTool"673 ExecutionBucket="7"674 />675 <Tool676 Name="VCCodeSignTool"677 />678 <DeploymentTool679 ForceDirty="-1"680 RemoteDirectory=""681 RegisterOutput="0"682 AdditionalFiles=""683 />684 <DebuggerTool685 />686 </Configuration>687 <Configuration688 Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)"689 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)"690 IntermediateDirectory="$(OutDir)"691 ConfigurationType="0"692 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"693 UseOfMFC="0"694 ATLMinimizesCRunTimeLibraryUsage="false"695 BuildLogFile=""696 >697 <Tool698 Name="VCNMakeTool"699 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8"700 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 /a"701 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 clean"702 Output="All samples"703 PreprocessorDefinitions=""704 IncludeSearchPath=""705 ForcedIncludes=""706 AssemblySearchPath=""707 ForcedUsingAssemblies=""708 CompileAsManaged=""709 />710 <Tool711 Name="VCCLCompilerTool"712 ExecutionBucket="7"713 />714 <Tool715 Name="VCCodeSignTool"716 />717 <DeploymentTool718 ForceDirty="-1"719 RemoteDirectory=""720 RegisterOutput="0"721 AdditionalFiles=""722 />723 <DebuggerTool724 />725 </Configuration>726 <Configuration727 Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"728 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)"729 IntermediateDirectory="$(OutDir)"730 ConfigurationType="0"731 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"732 UseOfMFC="0"733 ATLMinimizesCRunTimeLibraryUsage="false"734 BuildLogFile=""735 >736 <Tool737 Name="VCNMakeTool"738 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8"739 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 /a"740 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 clean"741 Output="All samples"742 PreprocessorDefinitions=""743 IncludeSearchPath=""744 ForcedIncludes=""745 AssemblySearchPath=""746 ForcedUsingAssemblies=""747 CompileAsManaged=""748 />749 <Tool750 Name="VCCLCompilerTool"751 ExecutionBucket="7"752 />753 <Tool754 Name="VCCodeSignTool"755 />756 <DeploymentTool757 ForceDirty="-1"758 RemoteDirectory=""759 RegisterOutput="0"760 AdditionalFiles=""761 />762 <DebuggerTool763 />764 </Configuration>765 <Configuration766 Name="Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"767 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)"768 IntermediateDirectory="$(OutDir)"769 ConfigurationType="0"770 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"771 UseOfMFC="0"772 ATLMinimizesCRunTimeLibraryUsage="false"773 BuildLogFile=""774 >775 <Tool776 Name="VCNMakeTool"777 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8"778 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 /a"779 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release VC_VER=8 clean"780 Output="All samples"781 PreprocessorDefinitions=""782 IncludeSearchPath=""783 ForcedIncludes=""784 AssemblySearchPath=""785 ForcedUsingAssemblies=""786 CompileAsManaged=""787 />788 <Tool789 Name="VCCLCompilerTool"790 ExecutionBucket="7"791 />792 <Tool793 Name="VCCodeSignTool"794 />795 <DeploymentTool796 ForceDirty="-1"797 RemoteDirectory=""798 RegisterOutput="0"799 AdditionalFiles=""800 />801 <DebuggerTool802 />803 </Configuration>804 <Configuration805 Name="Debug|Windows Mobile 6 Standard SDK (ARMV4I)"806 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)"807 IntermediateDirectory="$(OutDir)"808 ConfigurationType="0"809 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"810 UseOfMFC="0"811 ATLMinimizesCRunTimeLibraryUsage="false"812 BuildLogFile=""813 >814 <Tool815 Name="VCNMakeTool"816 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8"817 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 /a"818 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 clean"819 Output="All samples"820 PreprocessorDefinitions=""821 IncludeSearchPath=""822 ForcedIncludes=""823 AssemblySearchPath=""824 ForcedUsingAssemblies=""825 CompileAsManaged=""826 />827 <Tool828 Name="VCCLCompilerTool"829 ExecutionBucket="7"830 />831 <Tool832 Name="VCCodeSignTool"833 />834 <DeploymentTool835 ForceDirty="-1"836 RemoteDirectory=""837 RegisterOutput="0"838 AdditionalFiles=""839 />840 <DebuggerTool841 />842 </Configuration>843 <Configuration844 Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)"845 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)"846 IntermediateDirectory="$(OutDir)"847 ConfigurationType="0"848 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"849 UseOfMFC="0"850 ATLMinimizesCRunTimeLibraryUsage="false"851 BuildLogFile=""852 >853 <Tool854 Name="VCNMakeTool"855 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8"856 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 /a"857 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 clean"858 Output="All samples"859 PreprocessorDefinitions=""860 IncludeSearchPath=""861 ForcedIncludes=""862 AssemblySearchPath=""863 ForcedUsingAssemblies=""864 CompileAsManaged=""865 />866 <Tool867 Name="VCCLCompilerTool"868 ExecutionBucket="7"869 />870 <Tool871 Name="VCCodeSignTool"872 />873 <DeploymentTool874 ForceDirty="-1"875 RemoteDirectory=""876 RegisterOutput="0"877 AdditionalFiles=""878 />879 <DebuggerTool880 />881 </Configuration>882 <Configuration883 Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"884 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)"885 IntermediateDirectory="$(OutDir)"886 ConfigurationType="0"887 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"888 UseOfMFC="0"889 ATLMinimizesCRunTimeLibraryUsage="false"890 BuildLogFile=""891 >892 <Tool893 Name="VCNMakeTool"894 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8"895 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 /a"896 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 clean"897 Output="All samples"898 PreprocessorDefinitions=""899 IncludeSearchPath=""900 ForcedIncludes=""901 AssemblySearchPath=""902 ForcedUsingAssemblies=""903 CompileAsManaged=""904 />905 <Tool906 Name="VCCLCompilerTool"907 ExecutionBucket="7"908 />909 <Tool910 Name="VCCodeSignTool"911 />912 <DeploymentTool913 ForceDirty="-1"914 RemoteDirectory=""915 RegisterOutput="0"916 AdditionalFiles=""917 />918 <DebuggerTool919 />920 </Configuration>921 <Configuration922 Name="Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"923 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)"924 IntermediateDirectory="$(OutDir)"925 ConfigurationType="0"926 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"927 UseOfMFC="0"928 ATLMinimizesCRunTimeLibraryUsage="false"929 BuildLogFile=""930 >931 <Tool932 Name="VCNMakeTool"933 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8"934 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 /a"935 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 clean"936 Output="All samples"937 PreprocessorDefinitions=""938 IncludeSearchPath=""939 ForcedIncludes=""940 AssemblySearchPath=""941 ForcedUsingAssemblies=""942 CompileAsManaged=""943 />944 <Tool945 Name="VCCLCompilerTool"946 ExecutionBucket="7"947 />948 <Tool949 Name="VCCodeSignTool"950 />951 <DeploymentTool952 ForceDirty="-1"953 RemoteDirectory=""954 RegisterOutput="0"955 AdditionalFiles=""956 />957 <DebuggerTool958 />959 </Configuration>960 <Configuration961 Name="Debug-Static|Windows Mobile 6 Standard SDK (ARMV4I)"962 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)"963 IntermediateDirectory="$(OutDir)"964 ConfigurationType="0"965 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"966 UseOfMFC="0"967 ATLMinimizesCRunTimeLibraryUsage="false"968 BuildLogFile=""969 >970 <Tool971 Name="VCNMakeTool"972 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8"973 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 /a"974 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 clean"975 Output="All samples"976 PreprocessorDefinitions=""977 IncludeSearchPath=""978 ForcedIncludes=""979 AssemblySearchPath=""980 ForcedUsingAssemblies=""981 CompileAsManaged=""982 />983 <Tool984 Name="VCCLCompilerTool"985 ExecutionBucket="7"986 />987 <Tool988 Name="VCCodeSignTool"989 />990 <DeploymentTool991 ForceDirty="-1"992 RemoteDirectory=""993 RegisterOutput="0"994 AdditionalFiles=""995 />996 <DebuggerTool997 />998 </Configuration>999 <Configuration1000 Name="Debug-Static|Windows Mobile 6 Professional SDK (ARMV4I)"1001 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)"1002 IntermediateDirectory="$(OutDir)"1003 ConfigurationType="0"1004 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1005 UseOfMFC="0"1006 ATLMinimizesCRunTimeLibraryUsage="false"1007 BuildLogFile=""1008 >1009 <Tool1010 Name="VCNMakeTool"1011 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8"1012 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 /a"1013 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 clean"1014 Output="All samples"1015 PreprocessorDefinitions=""1016 IncludeSearchPath=""1017 ForcedIncludes=""1018 AssemblySearchPath=""1019 ForcedUsingAssemblies=""1020 CompileAsManaged=""1021 />1022 <Tool1023 Name="VCCLCompilerTool"1024 ExecutionBucket="7"1025 />1026 <Tool1027 Name="VCCodeSignTool"1028 />1029 <DeploymentTool1030 ForceDirty="-1"1031 RemoteDirectory=""1032 RegisterOutput="0"1033 AdditionalFiles=""1034 />1035 <DebuggerTool1036 />1037 </Configuration>1038 <Configuration1039 Name="Debug-Static|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"1040 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)"1041 IntermediateDirectory="$(OutDir)"1042 ConfigurationType="0"1043 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1044 UseOfMFC="0"1045 ATLMinimizesCRunTimeLibraryUsage="false"1046 BuildLogFile=""1047 >1048 <Tool1049 Name="VCNMakeTool"1050 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8"1051 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 /a"1052 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 clean"1053 Output="All samples"1054 PreprocessorDefinitions=""1055 IncludeSearchPath=""1056 ForcedIncludes=""1057 AssemblySearchPath=""1058 ForcedUsingAssemblies=""1059 CompileAsManaged=""1060 />1061 <Tool1062 Name="VCCLCompilerTool"1063 ExecutionBucket="7"1064 />1065 <Tool1066 Name="VCCodeSignTool"1067 />1068 <DeploymentTool1069 ForceDirty="-1"1070 RemoteDirectory=""1071 RegisterOutput="0"1072 AdditionalFiles=""1073 />1074 <DebuggerTool1075 />1076 </Configuration>1077 <Configuration1078 Name="Debug-Static|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"1079 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)"1080 IntermediateDirectory="$(OutDir)"1081 ConfigurationType="0"1082 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1083 UseOfMFC="0"1084 ATLMinimizesCRunTimeLibraryUsage="false"1085 BuildLogFile=""1086 >1087 <Tool1088 Name="VCNMakeTool"1089 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8"1090 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 /a"1091 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-static VC_VER=8 clean"1092 Output="All samples"1093 PreprocessorDefinitions=""1094 IncludeSearchPath=""1095 ForcedIncludes=""1096 AssemblySearchPath=""1097 ForcedUsingAssemblies=""1098 CompileAsManaged=""1099 />1100 <Tool1101 Name="VCCLCompilerTool"1102 ExecutionBucket="7"1103 />1104 <Tool1105 Name="VCCodeSignTool"1106 />1107 <DeploymentTool1108 ForceDirty="-1"1109 RemoteDirectory=""1110 RegisterOutput="0"1111 AdditionalFiles=""1112 />1113 <DebuggerTool1114 />1115 </Configuration>1116 <Configuration1117 Name="Release-Dynamic|Windows Mobile 6 Standard SDK (ARMV4I)"1118 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)"1119 IntermediateDirectory="$(OutDir)"1120 ConfigurationType="0"1121 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1122 UseOfMFC="0"1123 ATLMinimizesCRunTimeLibraryUsage="false"1124 BuildLogFile=""1125 >1126 <Tool1127 Name="VCNMakeTool"1128 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8"1129 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 /a"1130 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 clean"1131 Output="All samples"1132 PreprocessorDefinitions=""1133 IncludeSearchPath=""1134 ForcedIncludes=""1135 AssemblySearchPath=""1136 ForcedUsingAssemblies=""1137 CompileAsManaged=""1138 />1139 <Tool1140 Name="VCCLCompilerTool"1141 ExecutionBucket="7"1142 />1143 <Tool1144 Name="VCCodeSignTool"1145 />1146 <DeploymentTool1147 ForceDirty="-1"1148 RemoteDirectory=""1149 RegisterOutput="0"1150 AdditionalFiles=""1151 />1152 <DebuggerTool1153 />1154 </Configuration>1155 <Configuration1156 Name="Release-Dynamic|Windows Mobile 6 Professional SDK (ARMV4I)"1157 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)"1158 IntermediateDirectory="$(OutDir)"1159 ConfigurationType="0"1160 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1161 UseOfMFC="0"1162 ATLMinimizesCRunTimeLibraryUsage="false"1163 BuildLogFile=""1164 >1165 <Tool1166 Name="VCNMakeTool"1167 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8"1168 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 /a"1169 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 clean"1170 Output="All samples"1171 PreprocessorDefinitions=""1172 IncludeSearchPath=""1173 ForcedIncludes=""1174 AssemblySearchPath=""1175 ForcedUsingAssemblies=""1176 CompileAsManaged=""1177 />1178 <Tool1179 Name="VCCLCompilerTool"1180 ExecutionBucket="7"1181 />1182 <Tool1183 Name="VCCodeSignTool"1184 />1185 <DeploymentTool1186 ForceDirty="-1"1187 RemoteDirectory=""1188 RegisterOutput="0"1189 AdditionalFiles=""1190 />1191 <DebuggerTool1192 />1193 </Configuration>1194 <Configuration1195 Name="Release-Dynamic|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"1196 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)"1197 IntermediateDirectory="$(OutDir)"1198 ConfigurationType="0"1199 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1200 UseOfMFC="0"1201 ATLMinimizesCRunTimeLibraryUsage="false"1202 BuildLogFile=""1203 >1204 <Tool1205 Name="VCNMakeTool"1206 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8"1207 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 /a"1208 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 clean"1209 Output="All samples"1210 PreprocessorDefinitions=""1211 IncludeSearchPath=""1212 ForcedIncludes=""1213 AssemblySearchPath=""1214 ForcedUsingAssemblies=""1215 CompileAsManaged=""1216 />1217 <Tool1218 Name="VCCLCompilerTool"1219 ExecutionBucket="7"1220 />1221 <Tool1222 Name="VCCodeSignTool"1223 />1224 <DeploymentTool1225 ForceDirty="-1"1226 RemoteDirectory=""1227 RegisterOutput="0"1228 AdditionalFiles=""1229 />1230 <DebuggerTool1231 />1232 </Configuration>1233 <Configuration1234 Name="Release-Dynamic|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"1235 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)"1236 IntermediateDirectory="$(OutDir)"1237 ConfigurationType="0"1238 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1239 UseOfMFC="0"1240 ATLMinimizesCRunTimeLibraryUsage="false"1241 BuildLogFile=""1242 >1243 <Tool1244 Name="VCNMakeTool"1245 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8"1246 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 /a"1247 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=release-dynamic VC_VER=8 clean"1248 Output="All samples"1249 PreprocessorDefinitions=""1250 IncludeSearchPath=""1251 ForcedIncludes=""1252 AssemblySearchPath=""1253 ForcedUsingAssemblies=""1254 CompileAsManaged=""1255 />1256 <Tool1257 Name="VCCLCompilerTool"1258 ExecutionBucket="7"1259 />1260 <Tool1261 Name="VCCodeSignTool"1262 />1263 <DeploymentTool1264 ForceDirty="-1"1265 RemoteDirectory=""1266 RegisterOutput="0"1267 AdditionalFiles=""1268 />1269 <DebuggerTool1270 />1271 </Configuration>1272 <Configuration1273 Name="Debug-Dynamic|Windows Mobile 6 Standard SDK (ARMV4I)"1274 OutputDirectory=".\output\$(ProjectName)-wm6std-$(PlatformName)-vs8-$(ConfigurationName)"1275 IntermediateDirectory="$(OutDir)"1276 ConfigurationType="0"1277 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1278 UseOfMFC="0"1279 ATLMinimizesCRunTimeLibraryUsage="false"1280 BuildLogFile=""1281 >1282 <Tool1283 Name="VCNMakeTool"1284 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8"1285 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 /a"1286 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 clean"1287 Output="All samples"1288 PreprocessorDefinitions=""1289 IncludeSearchPath=""1290 ForcedIncludes=""1291 AssemblySearchPath=""1292 ForcedUsingAssemblies=""1293 CompileAsManaged=""1294 />1295 <Tool1296 Name="VCCLCompilerTool"1297 ExecutionBucket="7"1298 />1299 <Tool1300 Name="VCCodeSignTool"1301 />1302 <DeploymentTool1303 ForceDirty="-1"1304 RemoteDirectory=""1305 RegisterOutput="0"1306 AdditionalFiles=""1307 />1308 <DebuggerTool1309 />1310 </Configuration>1311 <Configuration1312 Name="Debug-Dynamic|Windows Mobile 6 Professional SDK (ARMV4I)"1313 OutputDirectory=".\output\$(ProjectName)-wm6pro-$(PlatformName)-vs8-$(ConfigurationName)"1314 IntermediateDirectory="$(OutDir)"1315 ConfigurationType="0"1316 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1317 UseOfMFC="0"1318 ATLMinimizesCRunTimeLibraryUsage="false"1319 BuildLogFile=""1320 >1321 <Tool1322 Name="VCNMakeTool"1323 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8"1324 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 /a"1325 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 clean"1326 Output="All samples"1327 PreprocessorDefinitions=""1328 IncludeSearchPath=""1329 ForcedIncludes=""1330 AssemblySearchPath=""1331 ForcedUsingAssemblies=""1332 CompileAsManaged=""1333 />1334 <Tool1335 Name="VCCLCompilerTool"1336 ExecutionBucket="7"1337 />1338 <Tool1339 Name="VCCodeSignTool"1340 />1341 <DeploymentTool1342 ForceDirty="-1"1343 RemoteDirectory=""1344 RegisterOutput="0"1345 AdditionalFiles=""1346 />1347 <DebuggerTool1348 />1349 </Configuration>1350 <Configuration1351 Name="Debug-Dynamic|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"1352 OutputDirectory=".\output\$(ProjectName)-wm5ppc-$(PlatformName)-vs8-$(ConfigurationName)"1353 IntermediateDirectory="$(OutDir)"1354 ConfigurationType="0"1355 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1356 UseOfMFC="0"1357 ATLMinimizesCRunTimeLibraryUsage="false"1358 BuildLogFile=""1359 >1360 <Tool1361 Name="VCNMakeTool"1362 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8"1363 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 /a"1364 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 clean"1365 Output="All samples"1366 PreprocessorDefinitions=""1367 IncludeSearchPath=""1368 ForcedIncludes=""1369 AssemblySearchPath=""1370 ForcedUsingAssemblies=""1371 CompileAsManaged=""1372 />1373 <Tool1374 Name="VCCLCompilerTool"1375 ExecutionBucket="7"1376 />1377 <Tool1378 Name="VCCodeSignTool"1379 />1380 <DeploymentTool1381 ForceDirty="-1"1382 RemoteDirectory=""1383 RegisterOutput="0"1384 AdditionalFiles=""1385 />1386 <DebuggerTool1387 />1388 </Configuration>1389 <Configuration1390 Name="Debug-Dynamic|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"1391 OutputDirectory=".\output\$(ProjectName)-wm5sp-$(PlatformName)-vs8-$(ConfigurationName)"1392 IntermediateDirectory="$(OutDir)"1393 ConfigurationType="0"1394 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"1395 UseOfMFC="0"1396 ATLMinimizesCRunTimeLibraryUsage="false"1397 BuildLogFile=""1398 >1399 <Tool1400 Name="VCNMakeTool"1401 BuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8"1402 ReBuildCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 /a"1403 CleanCommandLine="nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug-dynamic VC_VER=8 clean"1404 1404 Output="All samples" 1405 1405 PreprocessorDefinitions="" … … 1715 1715 </File> 1716 1716 <File 1717 RelativePath="..\src\samples\v streamutil.c"1717 RelativePath="..\src\samples\vid_streamutil.c" 1718 1718 > 1719 1719 </File> -
pjproject/branches/projects/2.0-dev/pjsip-apps/src/samples/aviplay.c
r3402 r3425 86 86 {PJMEDIA_FORMAT_H263 , "h263" , 87 87 PJ_FALSE, 0}, 88 {PJMEDIA_FORMAT_XVID , "xvid"}, 88 89 }; 89 90 … … 106 107 } codec_port_data_t; 107 108 108 static pj_status_t avi_event_cb(pjmedia_vid_ stream *stream,109 static pj_status_t avi_event_cb(pjmedia_vid_dev_stream *stream, 109 110 void *user_data, 110 111 pjmedia_vid_event *event) -
pjproject/branches/projects/2.0-dev/pjsip-apps/src/samples/simpleua.c
r3392 r3425 68 68 69 69 /* Settings */ 70 #define AF pj_AF_INET()/* Change to pj_AF_INET6() for IPv6.70 #define AF pj_AF_INET() /* Change to pj_AF_INET6() for IPv6. 71 71 * PJ_HAS_IPV6 must be enabled and 72 72 * your system must support IPv6. */ 73 #define SIP_PORT 5060 /* Listening SIP port */ 74 #define RTP_PORT 4000 /* RTP port */ 73 #if 0 74 #define SIP_PORT 5080 /* Listening SIP port */ 75 #define RTP_PORT 5000 /* RTP port */ 76 #else 77 #define SIP_PORT 5060 /* Listening SIP port */ 78 #define RTP_PORT 4000 /* RTP port */ 79 #endif 80 81 #define MAX_MEDIA_CNT 2 /* Media count, set to 1 for audio 82 * only or 2 for audio and video */ 75 83 76 84 /* … … 83 91 84 92 static pjmedia_endpt *g_med_endpt; /* Media endpoint. */ 85 static pjmedia_transport_info g_med_tpinfo; /* Socket info for media */ 86 static pjmedia_transport *g_med_transport;/* Media stream transport */ 93 94 static pjmedia_transport_info g_med_tpinfo[MAX_MEDIA_CNT]; 95 /* Socket info for media */ 96 static pjmedia_transport *g_med_transport[MAX_MEDIA_CNT]; 97 /* Media stream transport */ 98 static pjmedia_sock_info g_sock_info[MAX_MEDIA_CNT]; 99 /* Socket info array */ 87 100 88 101 /* Call variables: */ 89 102 static pjsip_inv_session *g_inv; /* Current invite session. */ 90 static pjmedia_session *g_med_session; /* Call's media session. */ 103 static pjmedia_stream *g_med_stream; /* Call's audio stream. */ 104 static pjmedia_vid_stream *g_med_vstream; /* Call's video stream. */ 91 105 static pjmedia_snd_port *g_snd_player; /* Call's sound player */ 92 106 static pjmedia_snd_port *g_snd_rec; /* Call's sound recorder. */ 107 static pjmedia_vid_port *g_vid_capturer;/* Call's video capturer. */ 108 static pjmedia_vid_port *g_vid_renderer;/* Call's video renderer. */ 93 109 94 110 … … 137 153 138 154 155 /* Notification on incoming messages */ 156 static pj_bool_t logging_on_rx_msg(pjsip_rx_data *rdata) 157 { 158 PJ_LOG(4,(THIS_FILE, "RX %d bytes %s from %s %s:%d:\n" 159 "%.*s\n" 160 "--end msg--", 161 rdata->msg_info.len, 162 pjsip_rx_data_get_info(rdata), 163 rdata->tp_info.transport->type_name, 164 rdata->pkt_info.src_name, 165 rdata->pkt_info.src_port, 166 (int)rdata->msg_info.len, 167 rdata->msg_info.msg_buf)); 168 169 /* Always return false, otherwise messages will not get processed! */ 170 return PJ_FALSE; 171 } 172 173 /* Notification on outgoing messages */ 174 static pj_status_t logging_on_tx_msg(pjsip_tx_data *tdata) 175 { 176 177 /* Important note: 178 * tp_info field is only valid after outgoing messages has passed 179 * transport layer. So don't try to access tp_info when the module 180 * has lower priority than transport layer. 181 */ 182 183 PJ_LOG(4,(THIS_FILE, "TX %d bytes %s to %s %s:%d:\n" 184 "%.*s\n" 185 "--end msg--", 186 (tdata->buf.cur - tdata->buf.start), 187 pjsip_tx_data_get_info(tdata), 188 tdata->tp_info.transport->type_name, 189 tdata->tp_info.dst_name, 190 tdata->tp_info.dst_port, 191 (int)(tdata->buf.cur - tdata->buf.start), 192 tdata->buf.start)); 193 194 /* Always return success, otherwise message will not get sent! */ 195 return PJ_SUCCESS; 196 } 197 198 /* The module instance. */ 199 static pjsip_module msg_logger = 200 { 201 NULL, NULL, /* prev, next. */ 202 { "mod-msg-log", 13 }, /* Name. */ 203 -1, /* Id */ 204 PJSIP_MOD_PRIORITY_TRANSPORT_LAYER-1,/* Priority */ 205 NULL, /* load() */ 206 NULL, /* start() */ 207 NULL, /* stop() */ 208 NULL, /* unload() */ 209 &logging_on_rx_msg, /* on_rx_request() */ 210 &logging_on_rx_msg, /* on_rx_response() */ 211 &logging_on_tx_msg, /* on_tx_request. */ 212 &logging_on_tx_msg, /* on_tx_response() */ 213 NULL, /* on_tsx_state() */ 214 215 }; 216 139 217 140 218 /* … … 146 224 int main(int argc, char *argv[]) 147 225 { 226 pj_pool_t *pool; 148 227 pj_status_t status; 228 unsigned i; 149 229 150 230 /* Must init PJLIB first: */ … … 152 232 PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); 153 233 234 pj_log_set_level(5); 154 235 155 236 /* Then init PJLIB-UTIL: */ … … 263 344 PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); 264 345 346 /* 347 * Register message logger module. 348 */ 349 status = pjsip_endpt_register_module( g_endpt, &msg_logger); 350 PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); 351 265 352 266 353 /* … … 285 372 #endif 286 373 374 375 /* Init video subsystem */ 376 pool = pjmedia_endpt_create_pool(g_med_endpt, "Video subsystem", 512, 512); 377 status = pjmedia_video_format_mgr_create(pool, 64, 0, NULL); 378 PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); 379 status = pjmedia_converter_mgr_create(pool, NULL); 380 PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); 381 status = pjmedia_vid_codec_mgr_create(pool, NULL); 382 PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); 383 status = pjmedia_vid_subsys_init(&cp.factory); 384 PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); 385 386 /* Init ffmpeg video codecs */ 387 status = pjmedia_codec_ffmpeg_init(NULL, &cp.factory); 388 PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); 389 287 390 288 391 /* … … 291 394 * opt to re-use the same media transport for subsequent calls. 292 395 */ 293 status = pjmedia_transport_udp_create3(g_med_endpt, AF, NULL, NULL, 294 RTP_PORT, 0, &g_med_transport); 295 if (status != PJ_SUCCESS) { 296 app_perror(THIS_FILE, "Unable to create media transport", status); 297 return 1; 298 } 299 300 /* 301 * Get socket info (address, port) of the media transport. We will 302 * need this info to create SDP (i.e. the address and port info in 303 * the SDP). 304 */ 305 pjmedia_transport_info_init(&g_med_tpinfo); 306 pjmedia_transport_get_info(g_med_transport, &g_med_tpinfo); 307 396 for (i = 0; i < PJ_ARRAY_SIZE(g_med_transport); ++i) { 397 status = pjmedia_transport_udp_create3(g_med_endpt, AF, NULL, NULL, 398 RTP_PORT + i*2, 0, 399 &g_med_transport[i]); 400 if (status != PJ_SUCCESS) { 401 app_perror(THIS_FILE, "Unable to create media transport", status); 402 return 1; 403 } 404 405 /* 406 * Get socket info (address, port) of the media transport. We will 407 * need this info to create SDP (i.e. the address and port info in 408 * the SDP). 409 */ 410 pjmedia_transport_info_init(&g_med_tpinfo[i]); 411 pjmedia_transport_get_info(g_med_transport[i], &g_med_tpinfo[i]); 412 413 pj_memcpy(&g_sock_info[i], &g_med_tpinfo[i].sock_info, 414 sizeof(pjmedia_sock_info)); 415 } 308 416 309 417 /* … … 367 475 status = pjmedia_endpt_create_sdp( g_med_endpt, /* the media endpt */ 368 476 dlg->pool, /* pool. */ 369 1, /* # of streams */ 370 &g_med_tpinfo.sock_info, 371 /* RTP sock info */ 477 MAX_MEDIA_CNT, /* # of streams */ 478 g_sock_info, /* RTP sock info */ 372 479 &local_sdp); /* the SDP result */ 373 480 PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); … … 440 547 /* On exit, dump current memory usage: */ 441 548 dump_pool_usage(THIS_FILE, &cp); 549 550 pj_pool_release(pool); 442 551 443 552 return 0; … … 575 684 */ 576 685 577 status = pjmedia_endpt_create_sdp( g_med_endpt, rdata->tp_info.pool, 1, 578 &g_med_tpinfo.sock_info, 579 &local_sdp); 686 status = pjmedia_endpt_create_sdp( g_med_endpt, rdata->tp_info.pool, 687 MAX_MEDIA_CNT, g_sock_info, &local_sdp); 580 688 PJ_ASSERT_RETURN(status == PJ_SUCCESS, PJ_TRUE); 581 689 … … 640 748 pj_status_t status) 641 749 { 642 pjmedia_s ession_info sess_info;750 pjmedia_stream_info stream_info; 643 751 const pjmedia_sdp_session *local_sdp; 644 752 const pjmedia_sdp_session *remote_sdp; … … 663 771 664 772 665 /* Create session info based on the two SDPs. 666 * We only support one stream per session for now. 667 */ 668 status = pjmedia_session_info_from_sdp(inv->dlg->pool, g_med_endpt, 669 1, &sess_info, 670 local_sdp, remote_sdp); 773 /* Create stream info based on the media audio SDP. */ 774 status = pjmedia_stream_info_from_sdp(&stream_info, inv->dlg->pool, 775 g_med_endpt, 776 local_sdp, remote_sdp, 0); 671 777 if (status != PJ_SUCCESS) { 672 app_perror( THIS_FILE, "Unable to create media session",status);778 app_perror(THIS_FILE,"Unable to create audio stream info",status); 673 779 return; 674 780 } 675 781 676 /* If required, we can also change some settings in the s essioninfo,782 /* If required, we can also change some settings in the stream info, 677 783 * (such as jitter buffer settings, codec settings, etc) before we 678 * create the s ession.679 */ 680 681 /* Create new media session, passing the two SDPs, and also the784 * create the stream. 785 */ 786 787 /* Create new audio media stream, passing the stream info, and also the 682 788 * media socket that we created earlier. 683 * The media session is active immediately. 684 */ 685 status = pjmedia_session_create( g_med_endpt, &sess_info, 686 &g_med_transport, NULL, &g_med_session ); 789 */ 790 status = pjmedia_stream_create(g_med_endpt, inv->dlg->pool, &stream_info, 791 g_med_transport[0], NULL, &g_med_stream); 687 792 if (status != PJ_SUCCESS) { 688 app_perror( THIS_FILE, "Unable to create media session", status);793 app_perror( THIS_FILE, "Unable to create audio stream", status); 689 794 return; 690 795 } 691 796 692 693 /* Get the media port interface of the first stream in the session. 797 /* Start the audio stream */ 798 status = pjmedia_stream_start(g_med_stream); 799 if (status != PJ_SUCCESS) { 800 app_perror( THIS_FILE, "Unable to start audio stream", status); 801 return; 802 } 803 804 /* Get the media port interface of the audio stream. 694 805 * Media port interface is basicly a struct containing get_frame() and 695 806 * put_frame() function. With this media port interface, we can attach … … 697 808 * player/recorder device. 698 809 */ 699 pjmedia_s ession_get_port(g_med_session, 0, &media_port);810 pjmedia_stream_get_port(g_med_stream, &media_port); 700 811 701 812 … … 746 857 status = pjmedia_snd_port_connect(g_snd_rec, media_port); 747 858 859 860 /* Get the media port interface of the second stream in the session, 861 * which is video stream. With this media port interface, we can attach 862 * the port directly to a renderer/capture video device. 863 */ 864 if (local_sdp->media_count > 1) { 865 pjmedia_vid_stream_info vstream_info; 866 pjmedia_vid_port_param vport_param; 867 868 /* Create stream info based on the media video SDP. */ 869 status = pjmedia_vid_stream_info_from_sdp(&vstream_info, 870 inv->dlg->pool, g_med_endpt, 871 local_sdp, remote_sdp, 1); 872 if (status != PJ_SUCCESS) { 873 app_perror(THIS_FILE,"Unable to create video stream info",status); 874 return; 875 } 876 877 /* If required, we can also change some settings in the stream info, 878 * (such as jitter buffer settings, codec settings, etc) before we 879 * create the video stream. 880 */ 881 882 /* Create new video media stream, passing the stream info, and also the 883 * media socket that we created earlier. 884 */ 885 status = pjmedia_vid_stream_create(g_med_endpt, inv->dlg->pool, 886 &vstream_info, g_med_transport[1], 887 NULL, &g_med_vstream); 888 if (status != PJ_SUCCESS) { 889 app_perror( THIS_FILE, "Unable to create video stream", status); 890 return; 891 } 892 893 /* Start the video stream */ 894 status = pjmedia_vid_stream_start(g_med_vstream); 895 if (status != PJ_SUCCESS) { 896 app_perror( THIS_FILE, "Unable to start video stream", status); 897 return; 898 } 899 900 901 if (vstream_info.dir & PJMEDIA_DIR_DECODING) { 902 status = pjmedia_vid_dev_default_param( 903 inv->pool, PJMEDIA_VID_DEFAULT_RENDER_DEV, 904 &vport_param.vidparam); 905 if (status != PJ_SUCCESS) { 906 app_perror(THIS_FILE, "Unable to get default param of video " 907 "renderer device", status); 908 return; 909 } 910 911 /* Get renderer format from decoding format in stream info */ 912 pjmedia_format_copy(&vport_param.vidparam.fmt, 913 &vstream_info.codec_param->dec_fmt); 914 vport_param.vidparam.dir = PJMEDIA_DIR_RENDER; 915 vport_param.active = PJ_TRUE; 916 917 /* Create renderer */ 918 status = pjmedia_vid_port_create(inv->pool, &vport_param, 919 &g_vid_renderer); 920 if (status != PJ_SUCCESS) { 921 app_perror(THIS_FILE, "Unable to create video renderer device", 922 status); 923 return; 924 } 925 926 /* Get video stream port for decoding direction */ 927 pjmedia_vid_stream_get_port(g_med_vstream, PJMEDIA_DIR_DECODING, 928 &media_port); 929 930 /* Connect renderer to media_port */ 931 status = pjmedia_vid_port_connect(g_vid_renderer, media_port, 932 PJ_FALSE); 933 if (status != PJ_SUCCESS) { 934 app_perror(THIS_FILE, "Unable to connect renderer to stream", 935 status); 936 return; 937 } 938 } 939 940 /* Create capturer */ 941 if (vstream_info.dir & PJMEDIA_DIR_ENCODING) { 942 status = pjmedia_vid_dev_default_param( 943 inv->pool, PJMEDIA_VID_DEFAULT_CAPTURE_DEV, 944 &vport_param.vidparam); 945 if (status != PJ_SUCCESS) { 946 app_perror(THIS_FILE, "Unable to get default param of video " 947 "capture device", status); 948 return; 949 } 950 951 /* Get renderer capturer from encoding format in stream info */ 952 pjmedia_format_copy(&vport_param.vidparam.fmt, 953 &vstream_info.codec_param->enc_fmt); 954 955 /* Capturer format ID should be copied from decoder format ID? */ 956 vport_param.vidparam.fmt.id = vstream_info.codec_param->dec_fmt.id; 957 vport_param.vidparam.dir = PJMEDIA_DIR_CAPTURE; 958 vport_param.active = PJ_TRUE; 959 960 /* Create capturer */ 961 status = pjmedia_vid_port_create(inv->pool, &vport_param, 962 &g_vid_capturer); 963 if (status != PJ_SUCCESS) { 964 app_perror(THIS_FILE, "Unable to create video capture device", 965 status); 966 return; 967 } 968 969 /* Get video stream port for decoding direction */ 970 pjmedia_vid_stream_get_port(g_med_vstream, PJMEDIA_DIR_ENCODING, 971 &media_port); 972 973 /* Connect capturer to media_port */ 974 status = pjmedia_vid_port_connect(g_vid_capturer, media_port, 975 PJ_FALSE); 976 if (status != PJ_SUCCESS) { 977 app_perror(THIS_FILE, "Unable to connect capturer to stream", 978 status); 979 return; 980 } 981 } 982 983 /* Start streaming */ 984 if (g_vid_renderer) { 985 status = pjmedia_vid_port_start(g_vid_renderer); 986 if (status != PJ_SUCCESS) { 987 app_perror(THIS_FILE, "Unable to start video renderer", 988 status); 989 return; 990 } 991 } 992 if (g_vid_capturer) { 993 status = pjmedia_vid_port_start(g_vid_capturer); 994 if (status != PJ_SUCCESS) { 995 app_perror(THIS_FILE, "Unable to start video capturer", 996 status); 997 return; 998 } 999 } 1000 } 1001 748 1002 /* Done with media. */ 749 1003 }
Note: See TracChangeset
for help on using the changeset viewer.