요 예제..example1.c
example2.c 요거

전송 과 받는 측 예제인데...

RTPExecute()요함수 부분에서 리턴값을 검사를 해서
RTP_OK가 아니면 다음 처리로 넘어가야 하는데

 while (evt_queue != NULL && evt_queue->event_time <= now) {
   /* There is a pending RTP event (currently this means there's
    * an RTCP packet to send), so run it. */
   RTPExecute(evt_queue->cid, evt_queue->event_opaque);
   /* Advance the queue */
   next = evt_queue->next;
   free(evt_queue);
   evt_queue = next;
 }
봐라 소스... 리턴값 검사 안한다.
RTPExecute시, DONT_SEND_NOW가 발생할수 있다.
즉, 지금 현재 보낼수 없고 다음에 보낸다는 것인데.
리턴값 검사안하고 함수 호출후 현 이벤트큐를 지워 버린다.
즉, 상대방에게 SR 또는 RR를 보내지 못하게 된다.

못 보내면 어떻게 되냐고??
SR과 RR정보는 패킷이 몇개 수신 되었고 몇개 짤렸고
언제쯤 도착했다라는 정보가 있고
그 정보로 네트워크 전송 속도를 제어 한다든지 인코딩시
저화질 , 고화질로 선택 할수 있다는거지.

ADSL 라이트로 XVID 인코딩된 데이터 다중채널(2영상) 보내다가
컴퓨터가 디져븠다.

왜 죽을까 원인은 모른다^^
송신 버퍼가 가득 차서 일까^^

RTP 요거 물건이긴 한데
다중채널일시 네트워크 대역폭은 계산해야 한다는거!
 

'프로그래밍 > C | C++' 카테고리의 다른 글

클래스 가상함수, 순수가상함수  (0) 2013.08.14
윈도우 malloc  (0) 2013.08.14
RTP 문서 한글 번역본  (0) 2013.08.14
문자열 처리 함수 정리  (0) 2013.08.14
FFMPEG 압축 기본적인 사용법  (0) 2013.08.14

+ Recent posts