Changeset 6110 for pjproject


Ignore:
Timestamp:
Nov 22, 2019 6:18:55 AM (5 years ago)
Author:
ming
Message:

Fixed #2253: Support for VP8 and VP9 video codec

Location:
pjproject/trunk
Files:
2 added
16 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/aconfigure

    r6066 r6110  
    651651ac_ssl_has_aes_gcm 
    652652ac_no_ssl 
     653ac_vpx_ldflags 
     654ac_vpx_cflags 
    653655ac_openh264_ldflags 
    654656ac_openh264_cflags 
     
    815817with_openh264 
    816818enable_openh264 
     819with_vpx 
     820enable_vpx 
    817821enable_ipp 
    818822with_ipp 
     
    14861490  --disable-v4l2          Disable Video4Linux2 (default: not disabled) 
    14871491  --disable-openh264      Disable OpenH264 (default: not disabled) 
     1492  --disable-vpx           Disable VPX (default: not disabled) 
    14881493  --enable-ipp            Enable Intel IPP support. Specify the Intel IPP 
    14891494                          package and samples location using IPPROOT and 
     
    15411546  --with-ffmpeg=DIR       Specify alternate FFMPEG prefix 
    15421547  --with-openh264=DIR     Specify alternate OpenH264 prefix 
     1548  --with-vpx=DIR          Specify alternate VPX prefix 
    15431549  --with-ipp=DIR          Specify the Intel IPP location 
    15441550  --with-ipp-samples=DIR  Specify the Intel IPP samples location 
     
    76107616 
    76117617 
     7618# Check whether --with-vpx was given. 
     7619if test "${with_vpx+set}" = set; then : 
     7620  withval=$with_vpx; 
     7621else 
     7622  with_vpx=no 
     7623 
     7624fi 
     7625 
     7626 
     7627if test "x$ac_cross_compile" != "x" -a "x$with_vpx" = "xno"; then 
     7628    enable_vpx=no 
     7629fi 
     7630 
     7631 
     7632 
     7633# Check whether --enable-vpx was given. 
     7634if test "${enable_vpx+set}" = set; then : 
     7635  enableval=$enable_vpx; 
     7636                if test "$enable_vpx" = "no"; then 
     7637                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: Checking if VPX is disabled... yes" >&5 
     7638$as_echo "Checking if VPX is disabled... yes" >&6; } 
     7639                fi 
     7640 
     7641else 
     7642 
     7643                  if test "x$with_vpx" != "xno" -a "x$with_vpx" != "x"; then 
     7644                        VPX_PREFIX=$with_vpx 
     7645                        VPX_CFLAGS="-I$VPX_PREFIX/include" 
     7646                        VPX_LDFLAGS="-L$VPX_PREFIX/lib" 
     7647                        { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using VPX prefix... $with_vpx" >&5 
     7648$as_echo "Using VPX prefix... $with_vpx" >&6; } 
     7649                  else 
     7650                        VPX_CFLAGS="" 
     7651                        VPX_LDFLAGS="" 
     7652                  fi 
     7653 
     7654                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking VPX usability" >&5 
     7655$as_echo_n "checking VPX usability... " >&6; } 
     7656 
     7657                  VPX_LIBS="-lvpx" 
     7658 
     7659                  SAVED_LIBS="$LIBS" 
     7660                  SAVED_LDFLAGS="$LDFLAGS" 
     7661                  SAVED_CFLAGS="$CFLAGS" 
     7662 
     7663                  LIBS="$VPX_LIBS $LIBS" 
     7664                  LDFLAGS="$VPX_LDFLAGS $LDFLAGS" 
     7665                  CFLAGS="$VPX_CFLAGS $CFLAGS" 
     7666 
     7667                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext 
     7668/* end confdefs.h.  */ 
     7669#include <vpx/vpx_encoder.h> 
     7670                                                    #include <vpx/vp8cx.h> 
     7671 
     7672int 
     7673main () 
     7674{ 
     7675vpx_codec_iface_t *(*enc_if)() = &vpx_codec_vp8_cx; 
     7676 
     7677  ; 
     7678  return 0; 
     7679} 
     7680_ACEOF 
     7681if ac_fn_c_try_link "$LINENO"; then : 
     7682   ac_vpx_cflags="-DPJMEDIA_HAS_VPX_CODEC=1 $VPX_CFLAGS" 
     7683                                   ac_vpx_ldflags="$VPX_LDFLAGS $VPX_LIBS" 
     7684                                   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 
     7685$as_echo "ok" >&6; } 
     7686 
     7687else 
     7688 
     7689                                   LIBS="$SAVED_LIBS" 
     7690                                   LDFLAGS="$SAVED_LDFLAGS" 
     7691                                   CFLAGS="$SAVED_CFLAGS" 
     7692                                   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 
     7693$as_echo "no" >&6; } 
     7694 
     7695fi 
     7696rm -f core conftest.err conftest.$ac_objext \ 
     7697    conftest$ac_exeext conftest.$ac_ext 
     7698 
     7699 
     7700fi 
     7701 
     7702 
     7703 
    76127704# Check whether --enable-ipp was given. 
    76137705if test "${enable_ipp+set}" = set; then : 
     
    79628054main () 
    79638055{ 
    7964 if (__builtin_available(macOS 10.3, iOS 11.3, *)) { 
     8056if (__builtin_available(macOS 10.12, iOS 10.0, *)) { 
    79658057                             SSLContextRef ssl_ctx; 
    79668058                             SSLReHandshake(ssl_ctx); 
     
    79818073 
    79828074                        LIBS="$LIBS -framework Security" 
    7983                         { $as_echo "$as_me:${as_lineno-$LINENO}: result: Checking if Security framework for Darwin SSL is available... yes" >&5 
    7984 $as_echo "Checking if Security framework for Darwin SSL is available... yes" >&6; } 
     8075                        { $as_echo "$as_me:${as_lineno-$LINENO}: result: Checking if Darwin SSL is available... yes" >&5 
     8076$as_echo "Checking if Darwin SSL is available... yes" >&6; } 
    79858077                    else 
    7986                         { $as_echo "$as_me:${as_lineno-$LINENO}: result: Checking if Security framework for Darwin SSL is available... no" >&5 
    7987 $as_echo "Checking if Security framework for Darwin SSL is available... no" >&6; } 
     8078                        { $as_echo "$as_me:${as_lineno-$LINENO}: result: Checking if Darwin SSL is available... no" >&5 
     8079$as_echo "Checking if Darwin SSL is available... no" >&6; } 
    79888080                    fi 
    79898081                    ;; 
  • pjproject/trunk/aconfigure.ac

    r6066 r6110  
    12981298              ]) 
    12991299 
     1300dnl # VPX alt prefix 
     1301AC_ARG_WITH(vpx, 
     1302            AS_HELP_STRING([--with-vpx=DIR], 
     1303                           [Specify alternate VPX prefix]), 
     1304            [], 
     1305            [with_vpx=no] 
     1306            ) 
     1307 
     1308dnl # Do not use default VPX installation if we are cross-compiling 
     1309if test "x$ac_cross_compile" != "x" -a "x$with_vpx" = "xno"; then 
     1310    enable_vpx=no 
     1311fi 
     1312 
     1313dnl # VPX 
     1314AC_SUBST(ac_vpx_cflags) 
     1315AC_SUBST(ac_vpx_ldflags) 
     1316AC_ARG_ENABLE(vpx, 
     1317              AS_HELP_STRING([--disable-vpx], 
     1318                             [Disable VPX (default: not disabled)]), 
     1319              [ 
     1320                if test "$enable_vpx" = "no"; then 
     1321                  AC_MSG_RESULT([Checking if VPX is disabled... yes]) 
     1322                fi 
     1323              ], 
     1324              [ 
     1325                  if test "x$with_vpx" != "xno" -a "x$with_vpx" != "x"; then 
     1326                        VPX_PREFIX=$with_vpx 
     1327                        VPX_CFLAGS="-I$VPX_PREFIX/include" 
     1328                        VPX_LDFLAGS="-L$VPX_PREFIX/lib"  
     1329                        AC_MSG_RESULT([Using VPX prefix... $with_vpx]) 
     1330                  else 
     1331                        VPX_CFLAGS="" 
     1332                        VPX_LDFLAGS=""  
     1333                  fi 
     1334 
     1335                  AC_MSG_CHECKING([VPX usability]) 
     1336 
     1337                  VPX_LIBS="-lvpx" 
     1338                   
     1339                  SAVED_LIBS="$LIBS" 
     1340                  SAVED_LDFLAGS="$LDFLAGS" 
     1341                  SAVED_CFLAGS="$CFLAGS" 
     1342                   
     1343                  LIBS="$VPX_LIBS $LIBS" 
     1344                  LDFLAGS="$VPX_LDFLAGS $LDFLAGS" 
     1345                  CFLAGS="$VPX_CFLAGS $CFLAGS" 
     1346                   
     1347                  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <vpx/vpx_encoder.h> 
     1348                                                    #include <vpx/vp8cx.h> 
     1349                                                  ]], 
     1350                                                  [vpx_codec_iface_t *(*enc_if)() = &vpx_codec_vp8_cx;] 
     1351                                                 )], 
     1352                                 [ ac_vpx_cflags="-DPJMEDIA_HAS_VPX_CODEC=1 $VPX_CFLAGS" 
     1353                                   ac_vpx_ldflags="$VPX_LDFLAGS $VPX_LIBS" 
     1354                                   AC_MSG_RESULT(ok) 
     1355                                  ], 
     1356                                 [ 
     1357                                   LIBS="$SAVED_LIBS" 
     1358                                   LDFLAGS="$SAVED_LDFLAGS" 
     1359                                   CFLAGS="$SAVED_CFLAGS" 
     1360                                   AC_MSG_RESULT(no) 
     1361                                 ]) 
     1362 
     1363              ]) 
     1364 
    13001365 
    13011366dnl ######################################################## 
  • pjproject/trunk/build.mak.in

    r5779 r6110  
    174174OPENH264_LDFLAGS =  @ac_openh264_ldflags@ 
    175175 
     176# VPX flags 
     177VPX_CFLAGS = @ac_vpx_cflags@  
     178VPX_LDFLAGS =  @ac_vpx_ldflags@ 
     179 
    176180# QT 
    177181AC_PJMEDIA_VIDEO_HAS_QT = @ac_pjmedia_video_has_qt@ 
     
    189193# PJMEDIA features exclusion 
    190194PJ_VIDEO_CFLAGS += $(SDL_CFLAGS) $(FFMPEG_CFLAGS) $(V4L2_CFLAGS) $(QT_CFLAGS) \ 
    191                    $(OPENH264_CFLAGS) $(DARWIN_CFLAGS) 
     195                   $(OPENH264_CFLAGS) $(VPX_CFLAGS) $(DARWIN_CFLAGS) 
    192196PJ_VIDEO_LDFLAGS += $(SDL_LDFLAGS) $(FFMPEG_LDFLAGS) $(V4L2_LDFLAGS) \ 
    193                    $(OPENH264_LDFLAGS) 
     197                   $(OPENH264_LDFLAGS) $(VPX_LDFLAGS) 
    194198 
    195199# CFLAGS, LDFLAGS, and LIBS to be used by applications 
  • pjproject/trunk/pjmedia/build/Makefile

    r6096 r6110  
    140140                        $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ 
    141141                        ipp_codecs.o silk.o opus.o $(CODEC_OBJS) \ 
    142                         g7221_sdp_match.o amr_sdp_match.o passthrough.o 
     142                        g7221_sdp_match.o amr_sdp_match.o passthrough.o \ 
     143                        vpx.o 
    143144export PJMEDIA_CODEC_CFLAGS += $(_CFLAGS) $(GSM_CFLAGS) $(SPEEX_CFLAGS) \ 
    144145                        $(ILBC_CFLAGS) $(IPP_CFLAGS) $(G7221_CFLAGS) 
  • pjproject/trunk/pjmedia/build/os-auto.mak.in

    r5814 r6110  
    3333OPENH264_LDFLAGS = @ac_openh264_ldflags@ 
    3434 
     35# vpx 
     36VPX_CFLAGS = @ac_vpx_cflags@ 
     37VPX_LDFLAGS = @ac_vpx_ldflags@ 
     38 
    3539 
    3640# PJMEDIA features exclusion 
     
    3842                 $(SDL_CFLAGS) $(FFMPEG_CFLAGS) $(V4L2_CFLAGS) $(QT_CFLAGS) \ 
    3943                 $(DARWIN_CFLAGS) $(ANDROID_CFLAGS) \ 
    40                  $(OPENH264_CFLAGS) 
     44                 $(OPENH264_CFLAGS) $(VPX_CFLAGS) 
    4145export LDFLAGS += $(SDL_LDFLAGS) $(FFMPEG_LDFLAGS) $(V4L2_LDFLAGS) \ 
    42                   $(OPENH264_LDFLAGS) 
     46                  $(OPENH264_LDFLAGS) $(VPX_LDFLAGS) 
    4347 
    4448# Define the desired sound device backend 
  • pjproject/trunk/pjmedia/include/pjmedia-codec.h

    r5630 r6110  
    2727 
    2828#include <pjmedia-codec/audio_codecs.h> 
    29 #include <pjmedia-codec/l16.h> 
     29#include <pjmedia-codec/bcg729.h> 
    3030#include <pjmedia-codec/ffmpeg_vid_codecs.h> 
    31 #include <pjmedia-codec/gsm.h> 
    32 #include <pjmedia-codec/speex.h> 
    33 #include <pjmedia-codec/ilbc.h> 
    3431#include <pjmedia-codec/g722.h> 
    3532#include <pjmedia-codec/g7221.h> 
     33#include <pjmedia-codec/gsm.h> 
     34#include <pjmedia-codec/ilbc.h> 
    3635#include <pjmedia-codec/ipp_codecs.h> 
     36#include <pjmedia-codec/l16.h> 
    3737#include <pjmedia-codec/opencore_amr.h> 
    38 #include <pjmedia-codec/vid_toolbox.h> 
    3938#include <pjmedia-codec/openh264.h> 
     39#include <pjmedia-codec/opus.h> 
    4040#include <pjmedia-codec/passthrough.h> 
    4141#include <pjmedia-codec/silk.h> 
    42 #include <pjmedia-codec/opus.h> 
    43 #include <pjmedia-codec/bcg729.h> 
    44  
     42#include <pjmedia-codec/speex.h> 
     43#include <pjmedia-codec/vid_toolbox.h> 
     44#include <pjmedia-codec/vpx.h> 
    4545 
    4646#endif  /* __PJMEDIA_CODEC_PJMEDIA_CODEC_H__ */ 
  • pjproject/trunk/pjmedia/include/pjmedia-codec/config.h

    r6101 r6110  
    581581#   define PJMEDIA_CODEC_OPENH264_LOG_LEVEL  WELS_LOG_ERROR 
    582582#endif 
     583 
     584/** 
     585 * Enable VPX VP8 codec. 
     586 * 
     587 * Default: 1 
     588 */ 
     589#ifndef PJMEDIA_HAS_VPX_CODEC_VP8 
     590#   define PJMEDIA_HAS_VPX_CODEC_VP8            1 
     591#endif 
     592 
     593/** 
     594 * Enable VPX VP9 codec. 
     595 * 
     596 * Default: 0 (disabled) 
     597 */ 
     598#ifndef PJMEDIA_HAS_VPX_CODEC_VP9 
     599#   define PJMEDIA_HAS_VPX_CODEC_VP9            0 
     600#endif 
     601 
    583602/** 
    584603 * @} 
  • pjproject/trunk/pjmedia/include/pjmedia-codec/types.h

    r6105 r6110  
    126126     PJMEDIA_RTP_PT_H264_RSV4, 
    127127 
     128     PJMEDIA_RTP_PT_VP8, 
     129     PJMEDIA_RTP_PT_VP9, 
     130 
    128131     /* Caution! 
    129132      * Ensure the value of the last pt above is <= 127. 
  • pjproject/trunk/pjmedia/include/pjmedia/format.h

    r6046 r6110  
    219219    PJMEDIA_FORMAT_H263P    = PJMEDIA_FORMAT_PACK('P', '2', '6', '3'), 
    220220    PJMEDIA_FORMAT_H264     = PJMEDIA_FORMAT_PACK('H', '2', '6', '4'), 
     221 
     222    PJMEDIA_FORMAT_VP8      = PJMEDIA_FORMAT_PACK('V', 'P', '8', '0'), 
     223    PJMEDIA_FORMAT_VP9      = PJMEDIA_FORMAT_PACK('V', 'P', '9', '0'), 
    221224 
    222225    PJMEDIA_FORMAT_MJPEG    = PJMEDIA_FORMAT_PACK('M', 'J', 'P', 'G'), 
  • pjproject/trunk/pjmedia/include/pjmedia/vid_codec_util.h

    r3715 r6110  
    153153 
    154154 
     155/** 
     156 * Definition of VPX parameters. 
     157 */ 
     158typedef struct pjmedia_vid_codec_vpx_fmtp 
     159{ 
     160    unsigned        max_fr;         /**< Max frame rate                     */ 
     161    unsigned        max_fs;         /**< Max frame size (in macroblocks)    */ 
     162    pj_uint8_t      profile_id;     /**< Profile ID                         */ 
     163} pjmedia_vid_codec_vpx_fmtp; 
     164 
     165 
     166/** 
     167 * Parse SDP fmtp of VPX. 
     168 * 
     169 * @param fmtp          The VPX SDP fmtp to be parsed. 
     170 * @param vpx_fmtp      The parsing result. 
     171 * 
     172 * @return              PJ_SUCCESS on success. 
     173 */ 
     174PJ_DECL(pj_status_t) pjmedia_vid_codec_vpx_parse_fmtp( 
     175                                const pjmedia_codec_fmtp *fmtp, 
     176                                pjmedia_vid_codec_vpx_fmtp *vpx_fmtp); 
     177 
     178 
     179/** 
     180 * Parse and apply the encoding and decoding SDP fmtp of VPX in the 
     181 * specified codec parameter. This will validate size and fps to conform 
     182 * to VPX level specified in SDP fmtp "max-fr" and "max-fs". 
     183 * 
     184 * @param param         The codec parameter. 
     185 * 
     186 * @return              PJ_SUCCESS on success. 
     187 */ 
     188PJ_DECL(pj_status_t) pjmedia_vid_codec_vpx_apply_fmtp( 
     189                                pjmedia_vid_codec_param *param); 
     190 
     191 
    155192PJ_END_DECL 
    156193 
  • pjproject/trunk/pjmedia/src/pjmedia/vid_codec_util.c

    r5678 r6110  
    763763 
    764764 
     765/* VPX fmtp parser */ 
     766PJ_DEF(pj_status_t) pjmedia_vid_codec_vpx_parse_fmtp( 
     767                                    const pjmedia_codec_fmtp *fmtp, 
     768                                    pjmedia_vid_codec_vpx_fmtp *vpx_fmtp) 
     769{ 
     770    const pj_str_t PROFILE_ID   = {"profile-id", 10}; 
     771    const pj_str_t MAX_FR       = {"max-fr", 6}; 
     772    const pj_str_t MAX_FS       = {"max-fs", 6}; 
     773 
     774    unsigned i; 
     775 
     776    pj_bzero(vpx_fmtp, sizeof(*vpx_fmtp)); 
     777 
     778    for (i = 0; i < fmtp->cnt; ++i) { 
     779        unsigned tmp; 
     780 
     781        if (pj_stricmp(&fmtp->param[i].name, &MAX_FS) == 0) { 
     782            tmp = pj_strtoul(&fmtp->param[i].val); 
     783            vpx_fmtp->max_fs = PJ_MAX(tmp, vpx_fmtp->max_fs); 
     784        } else if (pj_stricmp(&fmtp->param[i].name, &MAX_FR) == 0) { 
     785            tmp = pj_strtoul(&fmtp->param[i].val); 
     786            vpx_fmtp->max_fr = PJ_MAX(tmp, vpx_fmtp->max_fr); 
     787        } else if (pj_stricmp(&fmtp->param[i].name, &PROFILE_ID) == 0) { 
     788            tmp = pj_strtoul(&fmtp->param[i].val); 
     789            vpx_fmtp->profile_id = PJ_MAX(tmp, vpx_fmtp->profile_id); 
     790        } 
     791    } 
     792 
     793    return PJ_SUCCESS; 
     794} 
     795 
     796 
     797PJ_DEF(pj_status_t) pjmedia_vid_codec_vpx_apply_fmtp( 
     798                                pjmedia_vid_codec_param *param) 
     799{ 
     800    if (param->dir & PJMEDIA_DIR_ENCODING) { 
     801        pjmedia_vid_codec_vpx_fmtp fmtp; 
     802        pjmedia_video_format_detail *vfd; 
     803        pj_status_t status; 
     804 
     805        /* Get remote param */ 
     806        status = pjmedia_vid_codec_vpx_parse_fmtp(&param->enc_fmtp, 
     807                                                  &fmtp); 
     808        if (status != PJ_SUCCESS) 
     809            return status; 
     810 
     811        /* Adjust fps and size to conform to the parameter 
     812         * specified by remote SDP fmtp. 
     813         */ 
     814        vfd = pjmedia_format_get_video_format_detail(&param->enc_fmt, 
     815                                                     PJ_TRUE); 
     816 
     817        if (fmtp.max_fr > 0) { 
     818            vfd->fps.num   = fmtp.max_fr; 
     819            vfd->fps.denum = 1; 
     820        } 
     821         
     822        if (fmtp.max_fs > 0) { 
     823            unsigned max_res = ((int)pj_isqrt(fmtp.max_fs * 8)) * 16; 
     824             
     825            /* Do we need to maintain the aspect ratio or scale down 
     826             * to some predetermined resolution instead (for example, 
     827             * if the requested resolution is 640x480 and max_res is 
     828             * 600, should we scale down to 480xx360)? 
     829             */ 
     830            if (vfd->size.w > max_res) 
     831                vfd->size.w = max_res; 
     832            if (vfd->size.h > max_res) 
     833                vfd->size.h = max_res; 
     834        } 
     835    } 
     836 
     837    return PJ_SUCCESS; 
     838} 
     839 
     840 
    765841#endif /* PJMEDIA_HAS_VIDEO */ 
  • pjproject/trunk/pjmedia/src/test/vid_codec_test.c

    r5659 r6110  
    470470#endif 
    471471 
     472#if PJMEDIA_HAS_VIDEO && PJMEDIA_HAS_VPX_CODEC 
     473    status = pjmedia_codec_vpx_vid_init(NULL, mem); 
     474    if (status != PJ_SUCCESS) { 
     475        return -22; 
     476    } 
     477#endif 
     478 
    472479#if PJMEDIA_HAS_FFMPEG_VID_CODEC 
    473480    status = pjmedia_codec_ffmpeg_vid_init(NULL, mem); 
     
    502509#endif 
    503510 
     511#if PJMEDIA_HAS_VPX_CODEC && PJMEDIA_HAS_VPX_CODEC_VP8 
     512    rc = encode_decode_test(pool, "vp8", PJMEDIA_VID_PACKING_WHOLE); 
     513    if (rc != 0) 
     514        goto on_return; 
     515 
     516    rc = encode_decode_test(pool, "vp8", PJMEDIA_VID_PACKING_PACKETS); 
     517    if (rc != 0) 
     518        goto on_return; 
     519#endif 
     520 
     521#if PJMEDIA_HAS_VPX_CODEC && PJMEDIA_HAS_VPX_CODEC_VP9 
     522    rc = encode_decode_test(pool, "vp9", PJMEDIA_VID_PACKING_WHOLE); 
     523    if (rc != 0) 
     524        goto on_return; 
     525 
     526    rc = encode_decode_test(pool, "vp9", PJMEDIA_VID_PACKING_PACKETS); 
     527    if (rc != 0) 
     528        goto on_return; 
     529#endif 
     530 
    504531 
    505532on_return: 
     
    513540    pjmedia_codec_vid_toolbox_deinit(); 
    514541#endif 
     542#if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0 
     543    pjmedia_codec_vpx_vid_deinit(); 
     544#endif 
    515545    pjmedia_vid_dev_subsys_shutdown(); 
    516546    pj_pool_release(pool); 
  • pjproject/trunk/pjsip-apps/src/samples/simpleua.c

    r5943 r6110  
    396396#   endif 
    397397 
     398#   if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0 
     399    status = pjmedia_codec_vpx_vid_init(NULL, &cp.factory); 
     400    PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); 
     401#   endif 
     402 
    398403#  if defined(PJMEDIA_HAS_FFMPEG_VID_CODEC) && PJMEDIA_HAS_FFMPEG_VID_CODEC!=0 
    399404    /* Init ffmpeg video codecs */ 
     
    596601#   if PJMEDIA_HAS_VIDEO && PJMEDIA_HAS_VID_TOOLBOX_CODEC 
    597602    pjmedia_codec_vid_toolbox_deinit(); 
     603#   endif 
     604#   if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0 
     605    pjmedia_codec_vpx_vid_deinit(); 
    598606#   endif 
    599607 
  • pjproject/trunk/pjsip-apps/src/samples/vid_codec_test.c

    r4815 r6110  
    8484#endif 
    8585 
     86#if defined(PJMEDIA_HAS_VID_TOOLBOX_CODEC) && \ 
     87    PJMEDIA_HAS_VID_TOOLBOX_CODEC != 0 
     88    status = pjmedia_codec_vid_toolbox_init(NULL, pf); 
     89    PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); 
     90#endif 
     91 
     92#if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0 
     93    status = pjmedia_codec_vpx_vid_init(NULL, pf); 
     94    PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); 
     95#endif 
     96 
    8697#if defined(PJMEDIA_HAS_FFMPEG_VID_CODEC) && PJMEDIA_HAS_FFMPEG_VID_CODEC != 0 
    8798    status = pjmedia_codec_ffmpeg_vid_init(NULL, pf); 
     
    103114#if defined(PJMEDIA_HAS_OPENH264_CODEC) && PJMEDIA_HAS_OPENH264_CODEC != 0 
    104115    pjmedia_codec_openh264_vid_deinit(); 
     116#endif 
     117 
     118#if defined(PJMEDIA_HAS_VID_TOOLBOX_CODEC) && \ 
     119    PJMEDIA_HAS_VID_TOOLBOX_CODEC != 0 
     120    pjmedia_codec_vid_toolbox_deinit(); 
     121#endif 
     122 
     123#if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0 
     124    pjmedia_codec_vpx_vid_deinit(); 
    105125#endif 
    106126 
  • pjproject/trunk/pjsip-apps/src/samples/vid_streamutil.c

    r5910 r6110  
    139139#endif 
    140140 
     141#if defined(PJMEDIA_HAS_VID_TOOLBOX_CODEC) && \ 
     142    PJMEDIA_HAS_VID_TOOLBOX_CODEC != 0 
     143    status = pjmedia_codec_vid_toolbox_init(NULL, pf); 
     144    PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); 
     145#endif 
     146 
     147#if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0 
     148    status = pjmedia_codec_vpx_vid_init(NULL, pf); 
     149    PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); 
     150#endif 
     151 
    141152#if defined(PJMEDIA_HAS_FFMPEG_VID_CODEC) && PJMEDIA_HAS_FFMPEG_VID_CODEC != 0 
    142153    status = pjmedia_codec_ffmpeg_vid_init(NULL, pf); 
     
    158169#if defined(PJMEDIA_HAS_OPENH264_CODEC) && PJMEDIA_HAS_OPENH264_CODEC != 0 
    159170    pjmedia_codec_openh264_vid_deinit(); 
     171#endif 
     172 
     173#if defined(PJMEDIA_HAS_VID_TOOLBOX_CODEC) && \ 
     174    PJMEDIA_HAS_VID_TOOLBOX_CODEC != 0 
     175    pjmedia_codec_vid_toolbox_deinit(); 
     176#endif 
     177 
     178#if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0 
     179    pjmedia_codec_vpx_vid_deinit(); 
    160180#endif 
    161181 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_vid.c

    r6106 r6110  
    103103#endif 
    104104 
     105#if PJMEDIA_HAS_VIDEO && PJMEDIA_HAS_VPX_CODEC 
     106    status = pjmedia_codec_vpx_vid_init(NULL, &pjsua_var.cp.factory); 
     107    if (status != PJ_SUCCESS) { 
     108        pjsua_perror(THIS_FILE, "Error initializing VPX library", 
     109                     status); 
     110        goto on_error; 
     111    } 
     112#endif 
     113 
    105114    status = pjmedia_vid_dev_subsys_init(&pjsua_var.cp.factory); 
    106115    if (status != PJ_SUCCESS) { 
     
    165174#if defined(PJMEDIA_HAS_OPENH264_CODEC) && PJMEDIA_HAS_OPENH264_CODEC != 0 
    166175    pjmedia_codec_openh264_vid_deinit(); 
     176#endif 
     177 
     178#if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0 
     179    pjmedia_codec_vpx_vid_deinit(); 
    167180#endif 
    168181 
Note: See TracChangeset for help on using the changeset viewer.