GN⁺: 윈앰프 레거시 플레이어 소스 코드
(github.com/WinampDesktop)Winamp
소개
- Winamp는 1997년에 출시된 멀티미디어 플레이어로, 다양한 오디오 포맷과의 호환성 및 유연성으로 유명함
- Nullsoft가 개발하였으며, 수백만 명의 사용자들 사이에서 큰 인기를 끌었음
- 개발이 한동안 중단되었으나, 이제 소스 코드가 공개되어 커뮤니티가 플레이어를 개선하고 현대화할 수 있게 되었음
사용법
- Winamp 데스크톱 클라이언트 빌드는 현재 Visual Studio 2019 (VS2019)와 Intel IPP 라이브러리를 기반으로 함
- Winamp를 빌드하는 방법은 여러 가지가 있음
-
build_winampAll_2019.cmd
스크립트 파일을 사용하여 x86/x64 (디버그 및 릴리스) 버전 4개를 빌드함. 이 경우 Visual Studio IDE는 실행되지 않음 -
winampAll_2019.sln
파일을 사용하여 Visual Studio IDE에서 빌드 및 디버그를 수행함
-
종속성
-
build_winampAll_2019.cmd
스크립트 파일을 사용하여 x86/x64 (디버그 및 릴리스) 버전 4개를 빌드함. 이 경우 Visual Studio IDE는 실행되지 않음 -
winampAll_2019.sln
파일을 사용하여 Visual Studio IDE에서 빌드 및 디버그를 수행함
libvpx
-
libvpx
는 https://github.com/ShiftMediaProject/libvpx 에서 가져와 수정 후 아카이브로 패킹함 -
unpack_libvpx_v1.8.2_msvc16.cmd
를 실행하여 압축을 풀음
libmpg123
-
libmpg123
는 https://www.mpg123.de/download.shtml 에서 가져와 수정 후 아카이브로 패킹함 -
unpack_libmpg123.cmd
를 실행하여 dll 파일을 처리함
OpenSSL
-
openssl-1.0.1u
를 사용해야 함 - 정적 버전의 라이브러리를 빌드하기 위해
build_vs_2019_openssl_x86.cmd
와build_vs_2019_openssl_64.cmd
를 실행함 - OpenSSL을 빌드하려면 7-Zip, NASM, Perl을 설치해야 함
DirectX 9 SDK
- DirectX 9 SDK (2010년 6월)를 Microsoft에서 가져와 수정 후 아카이브로 패킹함
-
unpack_microsoft_directx_sdk_2010.cmd
를 실행하여 압축을 풀음
Microsoft ATLMFC lib 수정
-
C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.h
파일의 427번째 줄을return ::DeleteFile((LPTSTR)lpFileName);
에서return DeleteFile((LPTSTR)lpFileName);
로 변경함
Intel IPP 6.1.1.035
- Intel IPP 6.1.1.035를 가져와 수정 후 아카이브로 패킹함
-
unpack_intel_ipp_6.1.1.035.cmd
를 실행하여 압축을 풀음
GN⁺의 정리
- Winamp는 다양한 오디오 포맷과의 호환성으로 인해 여전히 많은 사용자들에게 사랑받고 있음
- 소스 코드가 공개되어 커뮤니티가 플레이어를 개선하고 현대화할 수 있는 기회를 제공함
- Visual Studio 2019와 여러 라이브러리를 사용하여 빌드할 수 있으며, 다양한 종속성을 처리해야 함
- Winamp와 유사한 기능을 제공하는 다른 멀티미디어 플레이어로는 VLC Media Player와 foobar2000이 있음
Hacker News 의견
-
프로젝트에 기여하는 방법에 대한 의문 제기
- 라이선스 4조는 프로젝트에 개선, 향상, 버그 수정을 기여하도록 권장함
- 그러나 5조는 코드 포크나 수정된 버전 배포를 금지함
- 표준 Github 워크플로우가 라이선스를 위반하게 됨
- 현재 프로젝트에 참여하지 않는 것이 최선임
- 라이선스 변경 시 다시 확인할 예정임
-
EFNet의 #mpeg3에서 Justin Frankel과의 추억
- 앱에 사용할 스킨과 트레이 아이콘을 제작함
- 크레딧에 이름이 포함됨
-
DMCA 요청과 저작권 문제
- GitHub에 DMCA 요청을 많이 제출해야 할 것임
- 포크는 GitHub의 기본 기능임
- 라이선스가 포크를 허용하지 않음
- 저작권을 잃을 위험이 있음
- 법원이 권리 보호를 강력히 요구할 것임
- GitHub 사용자 경험이 나빠질 것임
-
Winamp와의 개인적인 역사
- 과거에 인기 있는 플러그인을 작성함
- Winamp 3의 소스 코드는 C++로 완전히 재작성됨
- 원래 소스 코드는 Justin Frankel이 C로 작성함
-
1999년 대학 시절의 MP3 파티
- CD 디스크 셔플러 대신 MP3 사용
- Winamp로 음악을 무작위 재생함
- 음악이 끊기지 않고 파티를 즐김
- Winamp에 감사함
-
혼란스러운 오픈 소싱
- 소프트웨어 오픈 소싱이 매우 혼란스러움
-
간편한 음악 플레이어
- 경쟁자들보다 간편한 인터페이스를 가짐
- 불필요한 그래픽 없이 기능을 수행함
-
"오픈"이라는 용어의 왜곡
- 라이선스 조건이 재배포나 재판매를 허용하지 않음
- "오픈 소스"가 아닌 "소스 사용 가능"이라고 부르는 것이 맞음
-
SHOUTcast 서버 소프트웨어의 불법 공유
- 리포지토리에 불법적으로 공유된 코드가 있음