Código fuente del reproductor legado Winamp
(github.com/WinampDesktop)Winamp
Introducción
- Winamp es un reproductor multimedia lanzado en 1997, famoso por su compatibilidad con varios formatos de audio y su flexibilidad.
- Fue desarrollado por Nullsoft y ganó gran popularidad entre millones de usuarios.
- Su desarrollo estuvo detenido durante un tiempo, pero ahora se ha publicado el código fuente para que la comunidad pueda mejorar y modernizar el reproductor.
Uso
- La compilación del cliente de escritorio de Winamp se basa actualmente en Visual Studio 2019 (VS2019) y la biblioteca Intel IPP.
- Hay varias formas de compilar Winamp.
- Usar el archivo de script
build_winampAll_2019.cmdpara compilar las 4 versiones x86/x64 (debug y release). En este caso, no se abre el IDE de Visual Studio. - Usar el archivo
winampAll_2019.slnpara compilar y depurar dentro del IDE de Visual Studio.
- Usar el archivo de script
Dependencias
- Usar el archivo de script
build_winampAll_2019.cmdpara compilar las 4 versiones x86/x64 (debug y release). En este caso, no se abre el IDE de Visual Studio. - Usar el archivo
winampAll_2019.slnpara compilar y depurar dentro del IDE de Visual Studio.
libvpx
libvpxse toma de https://github.com/ShiftMediaProject/libvpx, se modifica y luego se empaqueta como archivo.- Ejecutar
unpack_libvpx_v1.8.2_msvc16.cmdpara descomprimirlo.
libmpg123
libmpg123se toma de https://www.mpg123.de/download.shtml, se modifica y luego se empaqueta como archivo.- Ejecutar
unpack_libmpg123.cmdpara procesar el archivo dll.
OpenSSL
- Se debe usar
openssl-1.0.1u. - Ejecutar
build_vs_2019_openssl_x86.cmdybuild_vs_2019_openssl_64.cmdpara compilar la versión estática de la biblioteca. - Para compilar OpenSSL, es necesario instalar 7-Zip, NASM y Perl.
DirectX 9 SDK
- El DirectX 9 SDK (junio de 2010) se toma de Microsoft, se modifica y luego se empaqueta como archivo.
- Ejecutar
unpack_microsoft_directx_sdk_2010.cmdpara descomprimirlo.
Modificación de la biblioteca Microsoft ATLMFC
- Cambiar la línea 427 del archivo
C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.hdereturn ::DeleteFile((LPTSTR)lpFileName);areturn DeleteFile((LPTSTR)lpFileName);.
Intel IPP 6.1.1.035
- Intel IPP 6.1.1.035 se toma, se modifica y luego se empaqueta como archivo.
- Ejecutar
unpack_intel_ipp_6.1.1.035.cmdpara descomprimirlo.
Resumen de GN⁺
- Winamp sigue siendo querido por muchos usuarios gracias a su compatibilidad con varios formatos de audio.
- La publicación del código fuente le da a la comunidad la oportunidad de mejorar y modernizar el reproductor.
- Puede compilarse usando Visual Studio 2019 y varias bibliotecas, y es necesario manejar diversas dependencias.
- Otros reproductores multimedia con funciones similares a Winamp incluyen VLC Media Player y foobar2000.
2 comentarios
Viendo el tema, parece que hay mucha discusión sobre la licencia.
Opiniones en Hacker News
Me da curiosidad cómo esperan que la gente contribuya al proyecto. La sección 4 de la licencia dice que se envíen mejoras, nuevas funciones y correcciones de errores al repositorio oficial, pero las restricciones de la sección 5 prohíben los forks del código o la distribución de versiones modificadas.
Entonces el flujo estándar de GitHub —“hacer fork del repositorio, modificar en una rama y enviar un pull request”— en sí mismo se vuelve una violación de la licencia.
Eso sí, no se puede probar ni depurar el parche. Eso implicaría crear una versión modificada de la base de código, y está prohibido. Solo hay que escribir directamente, sin ayuda de las prácticas habituales, lo que salga de alguna imaginación febril. Si alcanza para la licencia, también alcanzará para el código.
El otro es “hacer un fork del proyecto”, es decir, desarrollar y distribuir activamente una línea alternativa con otro nombre. Creo que el flujo de pull requests de GitHub se puede usar sin problema. Lo lamentable aquí es que GitHub haya elegido un nombre que choca con el significado ya establecido de “fork”. En realidad debería haber sido “clone”.
GitHub simplemente usa la palabra “fork” también para crear una copia del repositorio con fines de contribución.
La mayoría hará eso, no le van a mandar abogados a los contribuidores, y el mundo seguirá girando.
Lo mejor que se puede hacer ahora por el futuro de este proyecto es no involucrarse. Incluso clonarlo en un espacio de trabajo personal para revisarlo o compilarlo ya es demasiada participación frente a la postura actual de la licencia.
Si aparece un post en HN diciendo que cambiaron su posición sobre la licencia, volveré a mirar; hasta entonces, mejor cerrar esta pestaña y olvidarlo.
Pregunta: Ya que el código fuente de WinAMP fue publicado oficialmente, ¿te dan ganas de hackearle alguna función nueva y genial?
Respuesta: Aunque las hubiera tenido, las condiciones de la licencia me las habrían quitado, lol. La forma en que están escritas es completamente absurda. Por ejemplo, dice que “no se puede crear, mantener ni distribuir una versión fork del software”. Entonces cualquier cambio podría interpretarse como “crear una versión fork”. Incluso si se interpreta de forma un poco más permisiva, como supuestamente se pretendía, las condiciones son pésimas. Paso.
Recuerdo que hace muchísimo tiempo andaba por #mpeg3 en EFNet y conocí a Justin Frankel cuando estaba trabajando en esto.
Le hice algunos skins y unos íconos de bandeja para la app, y algunos de ellos están aquí. No recuerdo al 100% cuáles son todos míos, pero punchlabel definitivamente es mío. También aparezco en los créditos: https://github.com/WinampDesktop/winamp/blob/0695744fd658c42...
Creo que van a terminar enviando una enorme cantidad de solicitudes DMCA a GitHub hasta lograr que les bajen su propio repositorio, o bien lo van a retirar ellos mismos de GitHub con el riesgo de perder derechos de autor.
Los forks son una función central de GitHub. La política de forks solo se puede configurar en repositorios privados, y este es un repositorio público. La licencia no permite forks, y ya hay 6 forks. Normalmente, a diferencia de las marcas, los derechos de autor no se pierden por aplicación selectiva, pero en este caso el titular hizo que violar la licencia fuera facilísimo y además tiene acceso completo a la lista de infractores. Si no defienden activamente sus derechos, un tribunal probablemente se les reiría en la cara. Para GitHub también es una situación que no querrán manejar: una experiencia de usuario horrible en la que haces clic en uno de los botones más usados de la plataforma y de pronto te metes en un problema legal.
Tengo una pequeña relación con Winamp. Hace tiempo hice un plugin bastante popular.
Este es el código fuente de Winamp 3, que fue una reescritura completa de Winamp 2 en C++. En mi opinión, era demasiado complejo y sobrediseñado. El código original de Justin Frankel estaba en C.
Así que es, por decirlo de alguna manera, un caos que mezcla varios años del desarrollo 1.x → 2.x → 5.x y el trabajo de muchas personas durante ese tiempo. También contiene una gran parte de Winamp3, que ya había sido liberada correctamente como open source durante la época de AOL. No como esta licencia tan fuertemente restringida. Eso sí, recuerdo que al armar el entregable de código nunca se proporcionó un repositorio dedicado de Winamp3. Si mi memoria de hace 11 años no falla.
-dro
En el verano de 1999, cuando estaba en la universidad, nuestra casa fue la primera en usar MP3 en las fiestas. La mayoría usaba cambiadores de CD, y como había muchos discos rayados y manchados, la música saltaba todo el tiempo.
Nosotros fuimos completamente digitales y nos adelantamos a la época. Las fiestas eran en el sótano; dejábamos la computadora encerrada en una recámara libre y pasábamos cables y parlantes al espacio principal del sótano. Poníamos Winamp en modo aleatorio, durante horas no saltaba ni una vez y nadie tenía que estar pendiente de la música. Gracias a Winamp por crear buenos recuerdos.
Es una distorsión de la palabra “open”. Los términos de la licencia no permiten la redistribución ni la reventa, que suelen ser condiciones generalmente aceptadas del open source
Hay que notar que ni en el título ni en el repositorio dice “open source”. No debieron decir “el código fuente ahora está abierto”, sino llamarlo source available
Ojalá eliminen la afirmación de que es una “licencia copyleft”, o relajen la restricción de distribución a algo como “si distribuyes una versión modificada de este programa, no puedes llamar Winamp a esa versión modificada”
Era el único reproductor de música que no era molesto. Hacía lo suyo con una interfaz simple, sin el desorden ni los gráficos toscos que sus competidores consideraban la respuesta correcta
Si yo estuviera contratando, alguien que venga de Tidal no tendría oportunidad
Desde que conocí a esta bestia, nunca volví a usar otra cosa
Lo gracioso es que el commit más reciente es “Removing code which is not open”[0], lo que significa que al dejar ese código en el historial de Git están infringiendo los términos de licencia de alguien más
[0] https://github.com/WinampDesktop/winamp/commit/0a4b7d32d0906...
Copyright 2000-2002 Dolby Laboratories, Inc. All Rights
Reserved. Do not copy. Do not distribute.
Confidential information.
(C) copyright Fraunhofer - IIS (1998)
All Rights Reserved
Si quieres una copia gratis del software de servidor SHOUTcast, en este repositorio están compartiendo ilegalmente ese código
https://github.com/WinampDesktop/winamp/tree/3ab19235a69d96b...
Fuente: https://en.wikipedia.org/wiki/Radionomy#List_of_properties_f...