Remote Client 영상 표출 과정

2019, Mar 21    

Live 555 Pipeline

  • source -> filter -> filter -> sink
  • source -> filter -> sink
  • source -> sink

MediaRTSPSession 에서 RTSPClient 를 만든다.

RTSPClient 는 다음의 Request 를 순서대로 카메라에 보낸다.

  • Describe » Setup » Play
  • Announce » Setup » Record

각 Request 후 다음의 작업을 수행한다.

  • AfterDescribe : subsession 만들기, subsession iterate 진행, Request Setup
  • AfterSetup : 코덱에 맞는 sink 만들기, RTSPSession 을 decoder Litener로 등록, Request Play
  • AfterPlay : ??

OpenURL 이후 » doEventLoop

  • doEventLoop » SingleStep » Decode
  • OnDecode 에 Frame 데이터 넘겨줌 » RTSPSession Queue 에 Frame 쌓음.
  • IvsStream 에서 Session 의 frame 을 받아서 Queue 에 쌓음.
  • MultiScreen 에서 IvsStream 프레임을 받아서 Renderer::SetBitmap 호출.
  • Renderer 에서 image_bitmap_list 에 받는다.

MultiScreen 이 IvsStream, D2DRenderer 를 갖는다.

  • stream 은 stream 마다 만들어진다.
  • renderer 는 MultiScreen 당 1개 만들어진다.