Architecture

VideoManager
- VideoEncoder, VideoDecoder 연결, 비디오 엔진 컨트롤러 역할
VideoEncoder
- 이미지(CVPixelBuffer)를 받아서 → 압축된 데이터(H.264 Data)로 바꿔주는 역할
VideoDecoder
- 데이터를 받아서, 이해할 수 있는 형태(CMSampleBuffer)로 변환한 뒤, 화면 레이어에 적용하는 역할
VideoConfiguration
Protocol VideoEncoding, VideoDecoding
- Encoder, Decoder를 교체 가능하도록 Protocol VideoEncoding, VideoDecoding 구현
- 현재 H.264 코덱을 사용하지만, 추후 다른 코덱(AV1,HEVC(H.265))을 쓰고 싶을 때 VideoManager에서 분기 처리하지 않고 여러 Encoder 중에 원하는 Encoder로 갈아 끼울 수 있도록 함.
VideoKit 모듈화

- Video를 Encoding, Decoding 하는 기술은 재사용할 수 있으므로 VideoKit 모듈화 구현