본문 바로가기

잡(job)기술33

명령 라인 처리 옮기기 이번에는 지난 번 글에 이어서, 명령 라인 처리를 옮기는 과정만 기록한다. 역시 짧은 글이 될 것 같다. https://craftsmanship.tistory.com/109 remuxing.c 를 c++로 wrapping하기 이번 글은 굉장히 간단할 것 같다. C 언어로 작성된 내용을 C++에서 링크에서 사용하는 것은 다른 언어에 비해 아주 쉽다. 지난 번 글에서 이용한 remuxing.c 에 있는 main 함수를 C++에서 사용할 수 있 craftsmanship.tistory.com 명령 라인 처리 부분 옮기기 C영역의 remux() 함수를 원래의 main()에서 옮기다 보니, 명령 라인 처리도 이 함수에서 하고 있다. 그러므로, 이 처리는 C++영역의 main()으로 옮기는 것이 맞다. remux().. 2022. 4. 1.
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.