본문 바로가기

잡(job)기술33

Typedef된 struct 에 대한 forward declaration typedef 된 struct 에 대한 forward declaration 은 다음처럼 해주면 된다. typedef struct { ... } A;에 대해서, 우선 struct 에 이름을 부여해줘야 한다. typedef struct _A { ... } A;그리고, header 파일에서 다음과 같이 forward declaration 을 해준다. struct _A; typedef struct _A A; 2018. 3. 13.
av_frame_free에 대한 고찰 av_frame_free() 가 처리하는 범위 AVFrame *frame = av_frame_alloc();int ret = av_image_alloc(frame->data, frame->linesize, 1920, 1080, AV_PIX_FMT_RGBA, 32); av_frame_alloc() 에서는 AVFrame 크기의 메모리를 할당하고 기본값을 설정한다. 실제 sizeof(AVFrame) 을 통해서 크기를 알아보면 384 바이트이다. av_image_alloc() 에서는 frame->data 가 가리키는 메모리 배열에 format 에 따라 영상 데이터 크기만큼 메모리를 할당한다. AV_PIX_FMT_RGBA 의 경우에는 data 의 메모리 배열에서 하나만 사용한다. 한 라인의 데이터 크기값은 lin.. 2018. 3. 13.
Audio sample과 frame 이전부터 정리하고 머릿속에 박아 넣어둬야지 하면서, 차일피일 미뤄두던 일을 드디어 하게 된 것 같다. 학교 때 신호처리 이론을 배운 이후로 대충 이럴 것이다라는 생각만 가지고 있었고, 코딩을 할 때는 copy & paste 신공으로 보통 해결이 되다보니 게으름이 매번 승리하고 있었다. 동영상이든 음악 파일이든 오디오가 포함되어 있고, 이에 대한 정보로 44100 Hz혹은 44.1KHz 라는 표시가 되어 있다. 이 의미는 초당 441000번으로 오디오 데이터를 샘플링했다는 의미가 된다. 샘플링을 많이 할 수록 원음에 가까운 소리로 복원할 수 있다. 44.1KHz 는 CD 음질로 사용된다. 오디오 관련 코딩을 할 때 sample rate라는 말이 자주 등장하는데, 44100 이라는 값이 바로 이것을 의미한다.. 2018. 3. 13.
Live555 library를 이용한 디버깅 환경 구축 개요 실시간으로 스트리밍을 할 수 있는 방안을 찾기 위해 RTP 를 검토하는 중, 이를 지원하는 live555 라이브러리를 이용하여 개발 환경을 구축하는 방법과 간단한 테스트를 해볼 수 있는 내용을 공유하고자 이 글을 작성한다. Live555 library란? Live555는 RTP/RTCP, RTP 를 이용해서 멀티미디어 스트리밍을 하기 위해 사용할 수 있는 라이브러리이다. Linux 를 비롯한 Unix 계열과 Windows 플랫폼 모두 사용 가능하다. MPEG, H.265, H.264, JPEG 등의 비디오와 AAC와 MP3 같은 오디오 전송을 기본적으로 지원하고 있다. 다음 URL 로 홈페이지에 방문할 수 있다. http://www.live555.com/liveMedia/ LIVE555 Stream.. 2017. 1. 31.