'분류 전체보기'에 해당되는 글 444건

  1. [LibJingle]VS2010 빌드 2013.01.15
  2. GSon date ParseException 관련 2012.12.11
  3. 이클립스 최적화 2012.11.02

[LibJingle]VS2010 빌드

from Develop/VC 2013. 1. 15. 10:29

gclient를 이용 아래 순서에 따라 빌드

example내 call.exe의 경우 오픈파이어 서버 접속을 위해 url 수정 및 패스워드 전송추가


talk_base::InsecureCryptStringImpl pass;

if (argc > 2) {

      pass.password() = argv[2];

    }

if (pass.password().empty() && !test_server && oauth_token.empty()) {

    Console::SetEcho(false);

    Print("Password: ");

    std::cin >> pass.password();

    Console::SetEcho(true);

    Print("\n");

  }

pass.password() = jid.node();

xcs.set_pass(talk_base::CryptString(pass));//pmj add


현재 로그인 과정에서는 호환성 문제 없어보임.



Libjingle


1. Introduction


Libjingle is a set of components provided by Google to implement Jingle

protocols XEP-166 (http://xmpp.org/extensions/xep-0166.html) and XEP-167

(http://xmpp.org/extensions/xep-0167.html). Libjingle is also backward

compatible with Google Talk Call Signaling

(http://code.google.com/apis/talk/call_signaling.html). This package will

create several static libraries you may link to your projects as needed.


-talk               - No source files in talk/, just these subdirectories

|-base              - Contains basic low-level portable utility functions for

|                     things like threads and sockets

|-p2p               - The P2P stack

  |-base            - Base p2p functionality

  |-client          - Hooks to tie it into XMPP

|-session           - Signaling

  |-phone           - Signaling code specific to making phone calls

    |-testdata      - Samples of RTP voice and video dump

  |-tunnel          - Tunnel session and channel

|-third_party       - Folder for third party libraries

  |-libudev         - Folder containing libudev.h

|-xmllite           - XML parser

|-xmpp              - XMPP engine


In addition, this package contains two examples in talk/examples which

illustrate the basic concepts of how the provided classes work.


2. How to Build


We now support two ways to build libjingle: GYP and Scons. We recommend

using GYP which is easier to get dependencies and simple to use.


2.1. Building using GYP


2.1.1. Prerequisites


First, be sure to install the prerequisite software.

http://www.webrtc.org/reference/getting-started/prerequisite-sw


The currently supported platforms are Windows, Mac OS X, and Linux.


2.1.2. Getting the code and building


Create a working directory, enter it, and run:

$ gclient config http://libjingle.googlecode.com/svn/trunk

$ gclient sync


The sync will generate native build files for your environment using gyp

(Linux: make/ninja, OS X: XCode/make/ninja, Windows: Visual Studio). This

generation can also be forced manually:

$ gclient runhooks


It is also possible to choice the build method by set the environment variable

GYP_GENERATORS. For examplerun this on mac will generate makefiles instead of

xcode projects:

$ GYP_GENERATORS=make gclient runhooks


For more information on ninja build:

http://code.google.com/p/chromium/wiki/NinjaBuild


On Windows, gyp will use the latest Visual Studio on your system by default.

In order to specify a particular Visual Studio version, there are a few

options. You can set an environment variable GYP_MSVS_VERSION=<version> before

runhooks, or manually run the gyp command triggered by runhooks. From the

trunk/ directory:

$ build/gyp_chromium --depth=. -G msvs_version=<version> talk/libjingle_all.gyp


where <version> is, for example, 2008.


2.2. Building using SCons 


2.2.1. Prerequisites


Libjingle is built with swtoolkit (http://code.google.com/p/swtoolkit/), which

is a set of extensions to the open-source SCons build tool (www.scons.org).


  * First, install Python 2.4 or later from http://www.python.org/.

    Please note that since swtoolkit only works with Python 2.x, you will

    not be able to use Python 3.x.


    python --version to confirm that python is in your path, and 2.4 or greater.


  * Second, install the stand alone scons-local zip package 2.0.0 or later from

    http://www.scons.org/download.php and set an environment variable,

    SCONS_DIR, to point to the directory containing SCons.

    For example, on Windows, download

    http://sourceforge.net/projects/scons/files/scons-src/2.0.1/scons-local-2.0.1.zip

    Unzip to C:\src\libjingle\scons-local\

    set SCONS_DIR=C:\src\libjingle\scons-local\scons-local-2.0.1


  * Third, install swtoolkit from http://code.google.com/p/swtoolkit/.

    For example, on Windows download

    http://code.google.com/p/swtoolkit/downloads/detail?name=swtoolkit.0.9.1.zip

    Unzip to C:\src

    Optionally add swtoolkit to path.  Otherwise call hammer.bat directly.

    set PATH_TO_SWTOOLKIT=c:\src\swtoolkit

    set PATH=%PATH_TO_SWTOOLKIT%;%PATH%


  * Finally, download and install the unit test framework from

    http://code.google.com/p/googletest/downloads/list

    To install it, just unzip the package and put the file folder under

    /talk/third_party/ directory and rename it from "gtest-x.x.x" to "gtest",

    so that your folder structure looks like:

    /talk/third_party/gtest/...


2.2.2. libjingle


Libjingle needs to be downloaded and patched


  * First, install Libjingle.  Since this README lives within Libjingle,

    this step is normally already done.

    Libjingle home page is here http://code.google.com/p/libjingle/

    For example, on Windows, download

    http://libjingle.googlecode.com/files/libjingle-0.5.2.zip

    unzip to C:\src\


  * Second, Libjingle depends on two open-source projects, expat and srtp.

    Download expat from http://sourceforge.net/projects/expat/ to

    talk/third_party/expat-2.0.1/. Download srtp at

    http://libjingle.googlecode.com/files/srtp-cvs.zip to

    talk/third_party/srtp. Note that srtp-1.4.4 does not work since it misses

    the extensions used by Libjingle.

    If you put expat or srtp in a different directory, you need to edit

    talk/libjingle.scons correspondingly.

    rename srtp-cvs to srtp

    For example, on Windows, download expat

    http://sourceforge.net/projects/expat/files/expat/2.0.1/expat-2.0.1.tar.gz

    Unzip to C:\src\libjingle-0.5.2\talk\third_party

    Download srtp

    http://libjingle.googlecode.com/files/srtp-cvs.zip

    Unzip to C:\src\libjingle-0.5.2\talk\third_party

    rename C:\src\libjingle-0.5.2\talk\third_party\srtp-cvs srtp


  * Third, on Windows, copy config.h

    copy talk\third_party\srtp\config.hw talk\third_party\srtp\crypto\include\config.h


2.2.3. Build Libjingle under Linux or OS X

  * On Linux, you need to install libssl-dev, libasound2-dev and gtk+2.0.

  * Some optional new features in OpenSSL are only available in OpenSSL v1.0

    and above. To build with new OpenSSL features, you need to add the

    "HAS_OPENSSL_1_0" to the cppdefine under the

    "talk.Library(env, name = jingle..." section in the "libjingle.scons" file.

    Then download the OpenSSL v1.0 from the following URL:

    http://www.openssl.org/source/openssl-1.0.0e.tar.gz

    Unzip the downloaded package to the "third_party/openssl", such that it creates

    the directory "third_party/openssl/include/", etc.

  * To build Libjingle, first make sure the SCONS_DIR environment variable

    is set correctly.

  * Second, run talk/third_party/expat-2.0.1/configure and

    talk/third_party/srtp/configure.

  * Third, go to the talk/ directory and run $path_to_swtoolkit/hammer.sh. Run

    $path_to_swtoolkit/hammer.sh --help for information on how to build for

    different modes.


2.2.4. Build Libjingle under Windows

  * First, make sure the SCONS_DIR environment variable is set correctly and

    Microsoft Visual Studio is installed.

    dir %SCONS_DIR%

    Should show a folder containing Scons\

  * Second, go to the talk\ directory and run %PATH_TO_SWTOOLKIT%\hammer.bat.

    To get help run:

    %PATH_TO_SWTOOLKIT%\hammer.bat --help

    different modes. You can run the last step under Visual Studio Command

    Prompt if Visual Studio tools are not under the path environment variable.

    Example to build call.exe

    %PATH_TO_SWTOOLKIT%\hammer.bat

    Example to build opt and dbg all programs

    %PATH_TO_SWTOOLKIT%\hammer.bat --jobs=6 --verbose --mode=all all_programs



The built binaries are under talk/build/dbg/staging or talk/build/opt/staging,

depending on the build mode. When the build is complete, you can run the

examples, login or call. For the call sample, you can specify the input and

output RTP dump for voice and video. This package provides two samples of input

RTP dump: voice.rtpdump is a single channel, 16Khz voice encoded with G722, and

video.rtpdump is 320x240 video encoded with H264 AVC at 30 frames per second.

These provided samples will inter-operate with Google Talk Video. If you use

other input RTP dump, you may need to change the codecs in call_main.cc, lines

215 - 222.


Libjingle also builds two server tools, a relay server and a STUN server. The

relay server may be used to relay traffic when a direct peer-to-peer connection

could not be established. The STUN Server implements the STUN protocol for

Session Traversal Utilities for NAT(rfc5389), and the TURN server is in active

development to reach compatibility with rfc5766. See the Libjingle Developer

Guide at http://developers.google.com/talk/libjingle/developer_guide for

information about configuring a client to use this relay server and this STUN

server.


To use LinphoneMediaEngine, you need to perform the following additional steps:

  * Download and install the "MediaStreamer" library on your

    machine.

  * Add the following lines into the libjingle.scons file.

    In the "talk.Library(env, name = "libjingle",..." section, you need to add:

      "HAVE_LINPHONE",

      "HAVE_SPEEX",

      "HAVE_ILBC",

    to the "cppdefines = [".


    In the "talk.App(env, name = "call",..." section, you need to add:

      "mediastreamer",

    to the "libs = [".

  * In the libjingle.scons file, add the following line into the "srcs = [ ..."

    section of the "libjingle" Library.

      "session/phone/linphonemediaengine.cc",

,

Caused by: java.text.ParseException: Unparseable date: "2012-11-26" (at offset 1)


sol)

Gson gSon=  new GsonBuilder().setDateFormat("yyyy-MM-dd").create();

,

이클립스 최적화

from Develop/Android 2012. 11. 2. 09:40

개발을 하면서 라이브러리를 이 것 저 것 가져다 붙였더니
이클립스가 Heap이 부족하다고 공간 좀 달라면 계속 시위 하다가 죽어버린다.;;
ini 파일을 멋대로 수정하여 max size와 perm size를 올려 주었으나
error code -1 이라며 에러 팝업만 뜨며 이클립스는 실행되지 않는다...
구글링을 통해 나름 최적의 성능을 보여주며 옵션을 건드려도 실행이 되는 설정을 만들었다.

// PermSize를 지정한다.. default option이기도 하다.. size는 알아서 조절 
--launcher.XXMaxPermSize
256m

// JDK 1.6 이상을 사용할 경우 이클립스 성능의 향상에 도움이 된다고 한다.
// 밑의 설정은 자신의 컴퓨터의 Java를 설치한 경로를 적어주면 된다.
-vm
C:\Program Files\Java\jdk1.6.0_20\bin\javaw.exe

// Java 1.6 버전을 사용하겠다고 명시해준다.
-vmargs
-Dosgi.requiredJavaVersion=1.6

// 처음 시작시 유효성 체크를 하지 않는다.
-Xverify:none

// 최소 메모리와 최대 메모리를 설정을 해준다.
// 보통 자신의 PC의 메모리의 반 정도를 해주면 된다고 한다.
// 최소 메모리와 최대 메모리의 크기를 갖게 해주면 성능 향상에 도움이 된다.
// 단지 메모리의 압박이 좀 있을 뿐...
-Xms1024m
-Xmx1024m

이클립스 사용하다가 터지신 분들...
이클립스가 느려터져서 몬해먹겠다는 분들....
ini 파일 설정만 조금 바꾸어 줘도 상당한 성능의 향상을 볼 수 있습니다.

,