Search Results for 'libmms'

2 POSTS

  1. 2008.03.18 libmms win32 branch 2
  2. 2008.02.27 libmms 포팅 1

libmms win32 branch

Posted 2008. 3. 18. 12:38
예전에 libmms 포팅했다는 글을 올렸었는데, 이 패치가 적용된 branch가 libmms 프로젝트 페이지에 올라와 있습니다. 저는 main branch에 통합될 것을 감안하고 Glib 기반으로 운영체제간 호환성 부분을 해결했는데, 별도 branch가 되면서 별로 큰 의미가 없는 것 같기도 하네요. GNOME 쪽 프로젝트가 윈도로 포팅된 경우가 아닌 이상 DirectShow 대신에 굳이 libmms를 직접 사용할 이유가 없기도 하니 별 상관은 없겠죠.



libmms 포팅

Posted 2008. 2. 27. 00:55
리눅스 쪽에서 mms/mmsh 스트리밍 소스를 사용하기 위한 libmms라는 프로젝트가 있습니다. 현재 0.4까지 올라와있습니다.

저는 오늘 GStreamer Plug-ins Bad에 있는 libmms 플러그인을 사용하기 위해 libmms를 윈도로 포팅하는 작업을 했습니다. 윈도 GStreamer에서 mms 소스를 간단히 테스트하려고 시작했는데, libmms가 제대로 포팅이 안 되어 있어서 조금 고쳐서 해본다는 게 결국 꽤 많은 코드를 수정하게 되었군요. 역시나 버리기 아까워서 패치로 묶어서 메인테이너한테 보냈는데 어찌될지는 모르겠습니다.

libmms의 외부 의존성은 소켓 라이브러리 밖에 없긴 한데, 윈도 포트를 고려를 안 해놔서 윈도의 경우 WinSock 함수를 쓰도록 패치를 했습니다. 윈도 프로그래밍 경험이 많지 않아서 역사적인 이유는 모르겠지만, WinSock이 유닉스 계열 소켓 함수와 거의 비슷하면서 조금씩 다른 부분들이 있어서 귀찮더군요.

처음에 WSAStartup을 안 부르고 테스트하다가 한참을 헤맸습니다. 더불어 snprintf나 strcasecmp, strncasemp도 윈도 쪽에 같은 이름으로 함수가 없어서 귀찮더군요. Glib이라도 쓰면 g_만 붙여서 g_snprintf, g_strcasecmp, g_strncasecmp로 사용하면 좋긴 한데, libmms 경우는 Glib 의존성을 제거한 흔적(glib.h)이 남아 있어서 그것도 안 되는 것 같고요.

새삼스러운 질문이지만 C에서 네트워크 관련 라이브러리를 리눅스 혹은 윈도로 포팅하는 가장 쉬운 방법은 무엇일까요?