- Moved DMX reading and file selection from Pure Data to the GUI.

- Added udserver external. All the communication between pure data
process and GUI now is done through Unix Domain Sockets.
- Only video files are working at the moment.
- Creating thumbnails now is done in the start routine.
- CITP/MSEx and DMX reading is started automatically in the start
routine.
- The dmx settings are reading from an xml file. Support for edit
through the GUI and save and open files in next commits. Also it should
integrates the window configuration.
- Audio has been cutted. It will be supported in a separate application.
This commit is contained in:
Santi Noreña 2013-07-02 18:36:25 +02:00
parent 333c40f188
commit bbe8a169f2
840 changed files with 1743 additions and 415349 deletions

108
todo.txt
View file

@ -11,63 +11,40 @@ Code: http://code.google.com/p/libremediaserver
*******************************************************************************
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
v0.05 video:
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Necesarios:
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*******************************************************************************
v0.04:
+ PD: Mirar cómo poder incluir la carpeta tcl dentro de directorio libremediaserver --> Cambio en los dir
+ GUI: Añadido contador de Frames Por Segundo.
+ GUI: Selector de tasa de frames.
+ Carpetas para fuentes
+ Video: Live input
Próximas versiones:
- Pure Data Video: Modularidad, sumar ventanas por instancias de LMS
--> NO SE PUEDE POR USAR LOS MISMOS PUERTOS
--> Opción de arranque?
--> Blending entre proyectores. Mirar ejemplo Gem multiprojection
--> Añadir shaders a la capa?
- Pure Data Video: Cambiar alpha por glgs
--> Mirar ejemplos en doc de Gem
--> Mirar requerimientos de tarjetas gráficas --> GLSG en OpenGL 2.0
--> Parece que se pueden cambiar más cosas aparte de alpha. Ejemplo 1 brillo y contraste.
- Conectividad: CITP/MSEx 1.1. Thumbs y previews de imágenes
--> Esperar a 1.2 en MagicQ?
- Pure Data: sincronismo de audio con videos
--> Parece que hay que hacer un script para separar el audio del video, y luego ejecutarlos juntos. Un poco chapu, la verdad. La aternativa es volver a pdp mediante pdp2gem (inviable, demasiado proceso)
--> De momento separando el .ogg del video, ejecutando en auto, y mandando play a la vez debería de estar sincronizados. Ahora mismo se podría separando el audio en un fichero .ogg y presionando el play a la vez en modo auto
--> La opción de pdp2gem parece la más factible. Gem no soporta en absoluto el audio, habría que crear un backend para manejarlo y es una movida. ¿Hacerlo sólo en una capa?
--> hay que adaptar todo el patch a pdp_player e incluir los externals de pdp y pdp2gem. Adaptar sólo el método auto en esta capa, sin la velocidad ni los modos
- ¿Cómo transmitir el dmx a Pure Data? --> Unix Domain Socket parece lo mejor. Habría que hacer external en PD?
- Mover ola2pd a la parte C++ (importar de glmixer-dmx)
- Mover fileselector a la parte C++ (importar de glmixer-dmx)
- Crear base de datos al inicio en vez de leer ficheros del disco. Generar thumbs --> Importar de glmixer-dmx
- Añadir shaders, cambiar objetos Gem por uniform glsl. Alpha, chroma, ...
- Documentación en inglés
- Incluir archivos en el ejecutable como recursos Qt
--> Podrá leer Pure Data los .pd_linux?
--> Los externals empiezan a pesar demasiado y sería un ejecutable demasiado grande: Incluir sólo los patches.
- Incluir archivos pd en el ejecutable como recursos Qt
- Cambiar archivo de configuracion a xml (importar de glmixer-dmx)
- Optimizar CITP/MSEx a la forma QT --> QDataStream
- patchear universos OLA directamente en vez de usar el servidor web de olad
Quizás:
- On air button
- Generación de fractales visuales (Iteración en Gem)
- Algoritmos de generación visuales de glmixer
- Homografía real, cambiar curve3d
- Blending
- máscaras? --> estilo glmixer
- Efectos
- Contraste, brillo, saturación
- Scripts: script para formatear archivos de texto
- GUI: avisar cuando no se pueda leer un archivo de texto
v0.05 audio:
- Audio: Theremin, sintetizadores.
- Audio: Música fractal mediante generadores de fx de las mesas
- Audio: Tarjetas con varias salidas y varias mezclas
- Empaquetar en .deb
- Scripts: nuevo script para numerar los media
- Text: Alphas high y low. Mirar si se puede.
--> Parece que pix_alpha no tiene efecto alguno sobre text3d. Alpha blending tampoco.
- Video: Generación de fractales visuales
--> Iteración en Gem
- Core: Evitar los loops de reinicio.
--> Detectar y mandar mensaje a la terminal
--> Cortar la lectura DMX o apagar la ventana
--> Depurar a saco las condiciones del reinicio
- Scripts: script para formatear archivos de texto
- GUI: avisar cuando no se pueda leer un archivo de texto
- Audio: Mute check box.
- Scripts: nuevo script para formatear una archivo de texto plano.
--> Cambiar coll por textfile? textfile no soporta la búsqueda por línea
- Preview texts
--> No dispara el pix2image?
-----------------
@ -75,37 +52,6 @@ Para considerar/investigar:
- Necesidad de 16 bits en size, rotation, entry-end points, puntos de bezier?
- Más puntos de Bezier?
- Hacer external con reproductor de pix_film
--> Merece la pena codificarlo en C una vez hecho en PD? Ahorrará consumo de CPU?
- GUI: PD Watchdog reinicia el proceso Pure Data
--> Puede que sea mejor que se reproduzca más lento a forzar un reinicio?
--> Ahora estoy trabajando sin watchdog y no noto la diferencia
- Sustituir PD/Gem por OpenGl?
--> Pros:
- Aumenta la estabilidad y el rendimiento al quitar una capa
- Mejora la detección de errores
- Quita la limitación de versiones de OpenGl causada por Gem
- Aligera el programa al integrarse todo en el proceso principal
- Aumenta las posibilidades de rendering
- El patch actual sirve como esquema. Básicamente el proceso sería codificar ese patch en C+
- Aumenta la portabilidad
- Reduce las conexiones TCP y Unix Local Socket por llamadas a funciones.
--> Contras:
- Se pierde la facilidad de uso y modificación que proporciona Pure Data
- Varios meses de trabajo. El patch de PD/Gem ya está funcionando
--> Pasos:
- Hacer una clase para lectura de DMX
- Hacer el cargador de medias que cargará en el pipeline el media a reproducir: Phonon
- Hacer clase QGLWidget renderWindow
- Una señal por canal DMX
- FPS conectando un timer a la rutina de renderizado
- Creación/Destrucción/Tamaño/Posición de la ventana
-----------------
Descartados:
- Separar textos en otra personalidad
--> No posible, al iniciar un nuevo proceso inicia una nueva ventana- Malo para textos, bueno para varios proyectores y blending