본문 바로가기

전체 글61

remuxing.c 를 c++로 wrapping하기 이번 글은 굉장히 간단할 것 같다. C 언어로 작성된 내용을 C++에서 링크에서 사용하는 것은 다른 언어에 비해 아주 쉽다. 지난 번 글에서 이용한 remuxing.c 에 있는 main 함수를 C++에서 사용할 수 있도록 작업을 진행한다. https://craftsmanship.tistory.com/108 remuxing.c 빌드하기 영상 혹은 음성 데이터를 처리하는 업무를 종종 하게 된다. ffmpeg 라이브러리 도움을 많이 받는다. 특정 포멧의 미디어 데이터를 입력으로 해서 다른 포멧의 미디어 데이터를 만들어내야 하는 기 craftsmanship.tistory.com C 영역에서의 작업 우선, C의 main함수를 C++에서 링크할 수 있도록 이름을 변경한다. int main(int argc, char.. 2022. 3. 30.
remuxing.c 빌드하기 영상 혹은 음성 데이터를 처리하는 업무를 종종 하게 된다. ffmpeg 라이브러리 도움을 많이 받는다. 특정 포멧의 미디어 데이터를 입력으로 해서 다른 포멧의 미디어 데이터를 만들어내야 하는 기능이 필요한 상황이 발생했다. 소스 영상(H.264)의 코덱은 유지해도 되는 상황이라 이에 딱 맞게도 ffmpeg 소스에 remuxing.c 라는 예제가 있다. 이것을 실제로 빌드해서 실행해보는 과정을 정리한다. 우선 ffmpeg 라이브러리가 필요하다. 개발용 패키지를 받는 방법, 이미 빌드해서 배포하고 있는 바이너리를 이용하는 방법, 직접 소스를 받아 빌드하는 방법 등이 있지만, 직접 소스를 받아 빌드하되 이를 쉽게 할 수 있도록 해주는 vcpkg를 이용해서 빌드한다. vcpkg는 다음 링크에서 한글로도 친절하게.. 2022. 3. 28.
ES6 getter, setter class User { constructor(name, age, email) { this._name = name; this._age = age; this._email = email; } } const jeff = new User("Jeff", 30, "jeff@gmail.com"); User 라는 클래스를 하나 정의했다. 이 클래스를 객체로 하나 생성한 것이 jeff이다. 자바스크립트에서 아직 접근 권한자와 같은 - C++에서는 public, protected, private 과 같은 형태로 사용한다. - 사양을 제공하지 않는다. 그래서, jeff._name = "Jeff1"; 과 같은 필드 접근이 가능하다. 그렇지만, 객체 지향 프로그래밍에서의 캡슐화를 적절히 이용하는 것은 중요하다. 아마도 추후에는 .. 2019. 8. 27.
glew 빌드 확인 GLEW는 OpenGL Extension Wrangler Library의 약자로, OpenGL의 확장 API를 지원하기 위한 라이브러리이다.소스 코드는 이 곳을 이용하면 된다.GLEW: The OpenGL Extension Wrangler Library The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW…glew.sourceforge.net윈도우용은 친절하게도 바이너리 형태로 라이브러리를 제공하고 있다. 압축된 파일을 풀어보면,바이너리 형태 라이브러리하지만, 직접 빌드해봐야 제맛이다.소스 코드를 풀면, 바이너리 패키지를 풀었을 때보다는 좀 더 복잡한 폴.. 2018. 3. 13.
원격 접속되는 안드로이드 에뮬레이터 만들기 android-studio를 사용하면 안드로이드 장비나 에뮬레이터를 연결하기 위해서 특별히 신경 쓸 일이 없다. 하지만, android-studio는 너무 무겁다. 업무에 사용하는 컴퓨터가 사양이 떨어지는 것은 아니나, 업무 특성상 visual-studio를 띄우고, chrome 에 20개 이상의 탭을 띄우는 나에게는 어느 하나라도 작업을 다른 컴퓨터에서 할 수 있었으면 하는 바람이 있었다.다행히, 테스트용으로 사용하는 리눅스 서버가 있었고, 여기에 VNS를 설치해서 내 컴퓨터에서 원격 데스크톱으로 연결하고, android-studio 를 구동하면 어떨까 하는 생각이 있었다. 리눅스 서버에는 centos 7가 설치되어 있었기 때문에 이러한 환경을 만들기는 어렵지 않았고, android-studio 리눅스.. 2018. 3. 13.