미디어 플레이어 관련 개발을 하다보면 콘텐츠의 Video 크기를
미디어 플레이어의 화면 사이즈와 콘텐츠의 Video 비율에 맞게 조정할 필요가 있다.
아래는 위 요구에 맞게 구현한 코드다.
void adjustVideoSize(int viewWidth, int viewHeight, int videoWidth, int videoHeight, int *adjustedVideoWidth, int *adjustedVideoHeight) { // Get GCD of video int gcd; { int max, min; if (videoWidth > videoHeight) { max = videoHeight; min = videoWidth; } else { max = videoWidth; min = videoHeight; } int temp; while((max % min) != 0) { temp = max % min; max = min; min = temp; } gcd = min; } // Get video ratio int videoWidthRatio = videoWidth / gcd; int videoHeightRatio = videoHeight / gcd; int referenceValue; { int oneRatioWidth = viewWidth / videoWidthRatio; int oneRatioHeight = viewHeight / videoHeightRatio; if (oneRatioWidth > oneRatioHeight) { referenceValue = oneRatioHeight; } else { referenceValue = oneRatioWidth; } } *adjustedVideoWidth = videoWidthRatio * referenceValue; *adjustedVideoHeight = videoHeightRatio * referenceValue; } |
'TIL > C++' 카테고리의 다른 글
데이터 타입 크기와 signed/unsigned 체크 방법 (0) | 2014.12.16 |
---|
댓글