본문 바로가기

C/C++3

Custom IO-Context of FFmpeg 구현 FFmpeg에 Custom File IO를 추가하여 콘텐츠 데이터를 직접 전해주기 FFmpeg을 통해 콘텐츠를 디코딩할 때 libavformat에서 제공하는 avformat_open_input() 메소드에 콘텐츠의 경로를 설정하는 것이 일반적이다. 이렇게 하면 libavformat에서 알아서 경로의 콘텐츠 데이터를 읽어간다. 만약, libavformat에 직접 콘텐츠의 데이터를 제공하고 싶다면 어떻게 해야할까?(내가 만든 IO를 통해서 데이터를 읽어갈 수 있도록) 구글링을 열심히해서 Code Project에 관련 글을 찾았다. @ Creating Custom FFmpeg IO-Context http://www.codeproject.com/Tips/489450/Creating-Custom-FFmpeg-IO.. 2015. 1. 28.
화면 크기에 맞는 영상 크기 구하기 미디어 플레이어 관련 개발을 하다보면 콘텐츠의 Video 크기를미디어 플레이어의 화면 사이즈와 콘텐츠의 Video 비율에 맞게 조정할 필요가 있다.아래는 위 요구에 맞게 구현한 코드다. void adjustVideoSize(int viewWidth,int viewHeight,int videoWidth,int videoHeight,int *adjustedVideoWidth,int *adjustedVideoHeight) { // Get GCD of videoint gcd; {int max, min; if (videoWidth > videoHeight) {max = videoHeight;min = videoWidth;} else {max = videoWidth;min = videoHeight;} int tem.. 2015. 1. 23.
데이터 타입 크기와 signed/unsigned 체크 방법 1. 아래의 코드를 헤더 파일에 정의하고 #if !defined(DC__TEST_TYPE_SIZE) #define DC__TEST_TYPE_SIZE(_type, _size) \ typedef int DC__TEST_TYPE_SIZE_##_type[(sizeof(_type) == (_size)) ? 1 : -1] #endif #if !defined(DC__TEST_TYPE_IS_SIGNED) #define DC__TEST_TYPE_IS_SIGNED(_type) \ typedef int DC__TEST_TYPE_IS_SIGNED_##_type[((_type)((_type)1 2014. 12. 16.