2 điểm bởi GN⁺ 2024-09-25 | 2 bình luận | Chia sẻ qua WhatsApp

Winamp

Giới thiệu

  • Winamp là một trình phát đa phương tiện ra mắt vào năm 1997, nổi tiếng nhờ khả năng tương thích với nhiều định dạng âm thanh và tính linh hoạt
  • Được phát triển bởi Nullsoft và từng rất phổ biến với hàng triệu người dùng
  • Việc phát triển đã từng bị gián đoạn trong một thời gian, nhưng nay mã nguồn đã được công khai để cộng đồng có thể cải tiến và hiện đại hóa trình phát

Cách sử dụng

  • Bản build client desktop của Winamp hiện dựa trên Visual Studio 2019 (VS2019) và thư viện Intel IPP
  • Có nhiều cách để build Winamp
    1. Dùng tệp script build_winampAll_2019.cmd để build 4 phiên bản x86/x64 (debug và release). Trong trường hợp này, Visual Studio IDE sẽ không được chạy
    2. Dùng tệp winampAll_2019.sln để build và debug trong Visual Studio IDE

Phụ thuộc

  • Dùng tệp script build_winampAll_2019.cmd để build 4 phiên bản x86/x64 (debug và release). Trong trường hợp này, Visual Studio IDE sẽ không được chạy
  • Dùng tệp winampAll_2019.sln để build và debug trong Visual Studio IDE
libvpx
libmpg123
  • libmpg123 được lấy từ https://www.mpg123.de/download.shtml, sau đó chỉnh sửa và đóng gói thành archive
  • Chạy unpack_libmpg123.cmd để xử lý các tệp dll
OpenSSL
  • Cần sử dụng openssl-1.0.1u
  • Chạy build_vs_2019_openssl_x86.cmdbuild_vs_2019_openssl_64.cmd để build phiên bản thư viện tĩnh
  • Để build OpenSSL, cần cài đặt 7-Zip, NASM và Perl
DirectX 9 SDK
  • DirectX 9 SDK (tháng 6 năm 2010) được lấy từ Microsoft, sau đó chỉnh sửa và đóng gói thành archive
  • Chạy unpack_microsoft_directx_sdk_2010.cmd để giải nén
Sửa lib Microsoft ATLMFC
  • Thay đổi dòng 427 của tệp C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.h từ return ::DeleteFile((LPTSTR)lpFileName); thành return DeleteFile((LPTSTR)lpFileName);
Intel IPP 6.1.1.035
  • Intel IPP 6.1.1.035 được lấy về, chỉnh sửa và đóng gói thành archive
  • Chạy unpack_intel_ipp_6.1.1.035.cmd để giải nén

Tóm tắt của GN⁺

  • Winamp vẫn được nhiều người dùng yêu thích nhờ khả năng tương thích với nhiều định dạng âm thanh
  • Mã nguồn được công khai, tạo cơ hội để cộng đồng cải tiến và hiện đại hóa trình phát
  • Có thể build bằng Visual Studio 2019 cùng nhiều thư viện khác nhau, đồng thời cần xử lý nhiều phụ thuộc
  • Các trình phát đa phương tiện khác có chức năng tương tự Winamp gồm có VLC Media Player và foobar2000

2 bình luận

 
wedding 2024-09-25

Nhìn qua vấn đề này thì thấy có khá nhiều tranh cãi về giấy phép.

 
GN⁺ 2024-09-25
Ý kiến Hacker News
  • Nêu nghi vấn về cách đóng góp cho dự án

    • Điều 4 của giấy phép khuyến khích đóng góp các cải tiến, nâng cấp và sửa lỗi cho dự án
    • Tuy nhiên, Điều 5 lại cấm fork mã nguồn hoặc phân phối các phiên bản đã chỉnh sửa
    • Quy trình làm việc Github tiêu chuẩn sẽ vi phạm giấy phép
    • Hiện tại tốt nhất là không tham gia dự án
    • Sẽ kiểm tra lại nếu giấy phép thay đổi
  • Kỷ niệm về Justin Frankel tại #mpeg3 của EFNet

    • Đã làm skin và biểu tượng khay hệ thống để dùng cho ứng dụng
    • Tên của mình được đưa vào phần ghi công
  • Yêu cầu DMCA và vấn đề bản quyền

    • Sẽ phải gửi rất nhiều yêu cầu DMCA lên GitHub
    • Fork là tính năng mặc định của GitHub
    • Giấy phép không cho phép fork
    • Có nguy cơ mất bản quyền
    • Tòa án sẽ yêu cầu bảo vệ quyền một cách mạnh mẽ
    • Trải nghiệm người dùng trên GitHub sẽ trở nên tệ hơn
  • Lịch sử cá nhân với Winamp

    • Từng viết một plugin phổ biến trong quá khứ
    • Mã nguồn của Winamp 3 đã được viết lại hoàn toàn bằng C++
    • Mã nguồn gốc ban đầu do Justin Frankel viết bằng C
  • Tiệc MP3 thời đại học năm 1999

    • Dùng MP3 thay cho bộ đổi đĩa CD
    • Phát nhạc ngẫu nhiên bằng Winamp
    • Tận hưởng bữa tiệc mà nhạc không bị gián đoạn
    • Cảm ơn Winamp
  • Việc mở mã nguồn gây nhiều bối rối

    • Việc mở mã nguồn phần mềm này rất khó hiểu
  • Trình phát nhạc đơn giản, tiện dụng

    • Có giao diện đơn giản hơn các đối thủ cạnh tranh
    • Hoàn thành chức năng mà không có đồ họa thừa thãi
  • Sự bóp méo của thuật ngữ "mở"

    • Điều khoản giấy phép không cho phép phân phối lại hoặc bán lại
    • Gọi là "source-available" thay vì "mã nguồn mở" mới là đúng
  • Việc chia sẻ trái phép phần mềm máy chủ SHOUTcast

    • Có mã bị chia sẻ trái phép trong kho lưu trữ