Sourceforge야 안녕~

YUV player를 예전에 Sourceforge를 통해 공개해뒀었는데, 아무래도 요새 대세는 git인거 같아 github로 옮겨가야지하고 생각만 하고 있었는데, 휴일 버프에 힘입어 드디어 수행에 성공했습니다.

그동안 누적 다운로드를 확인해보니 벌써 38,000 회가 넘게 다운로드되었네요. 생각해보면 Clean software로 선정되었다고 메일도 오고 했었는데, donation은 한 건도 없네요. (paypal 연결은 sourceforge밖에 없길래 그 때 sourceforge에 올렸던 걸로 기억하는데… 쳇)

어쨌든 드디어 코드도 옮겼고, 누가 넣어달라고 코멘트 달아놨던 기능도 대충 구현해서 올려두고, 소스포지에 있던 코드는 참고하지 말라고 README.txt 하나 남겨놓고 다 날려버렸습니다.

이제는 제 관리되지 않는 trac을 정리하고, 개인 repository에 넣어뒀던 code snippet 폴더를 github로 옮겨봐야겠습니다. 헤헷

이거까지 하고 나면 정말 속이 다 시원하겠네요. ㅎㅎ

AirComix server와 encoding 문제…

홈서버가 잠시 터졌던 관계로… 불편함에 AirComix server를 php 기반 서버로 전환했는데, 이후 열리지 않는 zip archive들이 발견되었다.

처음에는 pecl:zip 문제인 줄 알고, PEAR:archive_zip 등을 사용하도록 코드를 업데이트 해야하나하는 고민을 했었지만 디버깅을 해보니 그런 큰 문제는 아니었다.

대게 단순한 문제였는데… “햏”같은 uhc/utf-8 등에는 정의되어 있지만, euc-kr에는 정의되지 않는 글자들이 사용된 경우 AirComix server가 오동작하는 문제!

단순히 handler.php에서 $source_encoding = “euc-kr”로 되어 있는걸 $source_encoding = “cp949″로 바꿔주면 잘 동작하는 것을 확인했다.

게임을 줄였더니 확실히 뭔가 생산적이 되는 것 같다.

덧: 예전에 인코딩이랑 캐릭터셋 관련해서 삽질도 많이하고 공부도 많이했는데, 덕분에 이래저래 도움이 많이 되는 것 같다. 오늘의 일기 끝!

서체와 관련된 희망사항…

어쩌다가 몇 년전에 kldpcdk 의 포럼에서 제가 참여했던 쓰레드들을 다시 보게 되었습니다. 유니코드나 서체와 관련된 글들에서 가끔 흥분을 했던 기억이 있는데, 지금 다시 보니까 얼굴이 화끈화끈 거리는군요. 하여튼 ‘왜 공개 글꼴이 필요한가?’ 쓰레드를 보고 생각난 게 있어서 오랫만에 포스팅을 해보려 합니다.

현재 은글꼴, ttf-alee, 서울체, 남산체, 백묵 글꼴 등등 공개 글꼴들이 하나 둘 나타나기 시작하고 있지만, 아직도 화면용(On screen display)으로 특화된 서체는 없습니다. 그 때문에 웹에서는 IR(Image Replacement) 등의 방법을 통해 이미 렌더링된 이미지로 텍스트를 대체시키는 방법을 많이 사용하고 있는데, 왜 화면용 글꼴에는 다들 관심을 가지지 않는 것일지 조금 아쉽네요.

Microsoft 의 경우 화면 용으로 Webdings, Verdana, Georgia, Trebuchet MS, Comic Sans MS, Impact, Arial, Courier New, Times New Roman 등의 서체를 공개하고 있습니다. 다음 페이지를 참고해보시면 알겠지만 이 서체들은 대부분 IE 나 Microsoft Windows 에 기본으로 번들되어 있기 때문에 대부분 기본으로 설치되게 됩니다.

http://www.microsoft.com/typography/web/fonts/fonts02.htm

또한 다음 URL 을 참고해보시면 웹을 통해 다운로드 받은 뒤 매킨토시에서도 사용할 수 있다고 되어 있습니다. (Verdana, Trebuchet MS 등은 화면용으로는 불필요한 기능들을 제외시킨 화면용 글꼴입니다.) 게다가 Linux 에서도 흔히 Corefonts 란 이름으로 패키징되어 사용되고 있죠.

http://www.microsoft.com/typography/web/fonts/verdana/default.htm

물론 아무 제약 없이 사용할 수 있는 서체의 개발을 의뢰하는 데는 많은 비용이 드는 것으로 알고 있습니다. 그렇기 때문에 서울 남산체, 한강체 처럼 (서울시에서 주도했으니) 나라에서 주도해서 자유롭게 사용가능한 화면용 서체들이 좀 개발되었으면 하는 바램이 있네요. 뭐 조금 앞어나간다면 IE 서비스팩 등에 그 새로운 화면용 글꼴들이 포함되었으면 더 좋겠구요. (이런 건 정치적인 문제다보니…)

YUVPlayer 업데이트…

사실 저나 제 주위 사람들 말고는 쓰는 사람이 거의 없는거 같긴 하지만 하여튼 메모리 릭을 일으키는 몇 가지 버그를 잡았습니다.

  1. ::GetDC(hWnd) 후 ::ReleaseDC(hWnd,dc) 를 호출 하지 않아서 생기는 메모리 릭
  2. gdTexImage2D 를 반복 호출해서 생기게 되는 메모리 릭

정확하게 설명하면 위와 같구요. ::GetDC 로 받아온 Device Context 는 “꼭” ::ReleaseDC 를 호출해줘야 한다는 msdn 님의 가르침에 따라, 약간의 코드를 추가해줬습니다.

또한 gdTexImage2D 를 반복해서 호출하면 이전 텍스쳐 데이타가 사용하던 메모리 영역은 해제가 될 줄 알았는데, 실제로는 그렇지가 않네요. 텍스쳐 사이즈가 달라지는 경우엔 glDestroyTexture 후 glGenTexture, glBindTexture, glTexImage2D 를 차례로 호출해줘야 하고, 사이즈가 달라질 필요가 없는 경우라면 gdTexSubImage2D 를 사용하면 된답니다. 어려운 openGL 세상이에요.

자세한 수정 사항은 제 trac 페이지에서 확인하심 될 듯~

http://trac.unfix.net/browser/yuvplayer/win/yuvplayer/OpenGLView.cpp

p.s) trac 이 ajax 를 활용하도록 업데이트 되었네요.