Bennu Game Development

Foros en Español => Sugerencias => Mensaje iniciado por: FreeYourMind en Junio 14, 2011, 09:33:48 pm

Título: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Junio 14, 2011, 09:33:48 pm
Bueno, despúes de muchas vueltas me he dado cuenta que es un BUG de Bennu, es dificil de localizar porque esta FEATURE no se suele utilizar mucho, y mucho menos en el caso que comento:

Resulta que si reproduces 2 videos seguidos y sólo estando en modo 8 bits (para respoducir videos FLC/FLI con 8bpp de produndidad), el segundo video falla si este es distinto al primero, y solo en estos casos, si es igual no ocurre.

El video se repoduce si, pero con tonos de azul.

El BUG se reproduce si haces un set_mode(320, 240, 8); antes de reproducir el primero.

Despues reproduces un video, al terminar si reproduces otro (aunque cambies la profundidad varias veces es igual) el segundo se queda azul.


He descubierto un FIX chapuzero que por lo menos resuelve el problema, he abierto el hilo para dejar constancia, no voy a poner ejemplos porque no tengo tiempo, pero es hacer lo que he dicho sin más.




FIX:


Al terminar el primer video, reproducimos el segundo video 2 veces, la primera de ellas (que es la conflictiva,
porque la segunda ya es una repetición del video)
lo reproducimos sólo en 4 FRAMES (es lo minimo que he conseguido, para
que el segundo video despúes ya salga bien, y lo he probado tambien en las portatiles,
o sea, no falla), le podemos hacer un fade_off y un fade_on en estos 4 frames.

Despues ya podemos reproducir el segundo video sin problemas (que en realidad es el tercero)

Es una solucion que funciona, no se percibe que entre los 2 videos habia un tercero,
pero ahí esta, resuelve el tema de los colores :)



Ejemplo:


PROCESS Rep_Video1()
PRIVATE
  flic_id;
  music_channel_id;

BEGIN

music_channel_id = play_wav(Mus_video1, 0);

flic_id = fli_start("Video1.flc", 0, 0);

WHILE(is_playing_wav(music_channel_id))
       IF (exit_status == 1)
          exit("bye", 0);
       END
       FRAME;
END

fli_end(flic_id);
end_fli();
stop_wav(all_sound);


// FIX: Lo ponemos al final del primer video:

set_mode(320, 240, 8);
fade_off();
flic_id = fli_start("Video2.flc", 0, 0);
FRAME; FRAME; FRAME; FRAME;
fli_end(flic_id);
end_fli();
   
ReprVideo2();

END

PROCESS Rep_Video2()
PRIVATE
  flic_id;
  music_channel_id;

BEGIN

let_me_alone();
fade_on();

music_channel_id = play_wav(Mus_video2, 0);

flic_id = fli_start("Video2.flc", 0, 0);

WHILE(is_playing_wav(music_channel_id))
       IF (exit_status == 1)
          exit("bye", 0);
       END
       FRAME;
END

fli_end(flic_id);
end_fli();
stop_wav(all_sound);

END
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Junio 15, 2011, 01:59:14 am
gracias free!

a la lista de pendientes!

karma!
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Julio 31, 2011, 12:56:25 am
free, este revisando tu ejemplo, te voy a decir que lo solucionaste de casualidad, porque nada tiene que ver con la solucion descripta arriba.

el problema es que la paleta en 8bits no se actualiza, en realidad si se actualiza pero el flag que indica que refresque la informacion en SDL no se activaba en la funcion de refrescar la paleta.

la solucion que realmente aplicaba a lo que hiciste fue:

- hacer un fade_off
- cargar el flc
- ejecutar un frame para que cargue la paleta y la refresque.
- fade_on, para prender la pantalla.

esas instrucciones que tenias desparramadas por ahi fueron la solucion.

como sea, ya no hara falta hacer esto, ya que corregi la grbase para que en caso de actualizar los datos de la lib del sistema la marque para que actualice realmente la SDL.

gracias free por el aviso...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Julio 31, 2011, 01:58:48 am
Pues me has venido como anillo al dedo, porque aunque ya funcionaba en la Caanoo, en PC a veces tiraba mal...

De paso te digo que en la Dingoo al reproducir el segundo video se congela la pantalla (se queda negro).
No se a que se debe, pero cuanto antes saques los binarios antes haré la prueba tambien en dingoo de nuevo.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Julio 31, 2011, 02:06:39 am
vale, si, estoy compilando, desde hace unas horas, windows tarda infierno.

de paso salen los fixes para los region, para el m7 y scroll.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Julio 31, 2011, 10:23:47 am
Thanks  :D
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Julio 31, 2011, 05:11:52 pm
de nada... y que tal ahora?
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Julio 31, 2011, 05:13:34 pm
Todavia no he probado, estoy liado con mi emu de SNES xD
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 04:38:52 pm
Lo acabo de probar...

Estaba super contento porque en PC ya funciona perfecto, pero tanto en Wiz como Caanoo me he llevado la sopresa, los videos se paran a los 1, 2 segundos, y despues la musica del menu siguiente se queda en empezando una y otra vez en loop....

Revisalo porfa, ha quedao peor de lo que estaba  :(

EDIT: En Dingux funciona tal cual la anterior release, o sea, el primer video sale completo pero al empezar el segundo se queda la pantalla en negro congelada.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 04:52:20 pm
pruebalo sin sonido y sin los fade... yo lo he probado y funciona...

demas esta decir que tienes doble cierre de los videos en tu ejemplo, y eso esta mal.

puede que en dingux deberias sacarle todo el codigo del sonido, porque el is_playing esta dando -1, y en tu ejemplo, no estas considerando ninguna situacion de error... algo similar puede pasar con caanoo y wiz.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 05:08:44 pm
Lo de dingux lo entiendo, pero aún así nose porque el primero si funciona teniendo tambien el check de sonido, deberian fallar los 2, al no tener sonido, de todas formas deberia saltar al menu despues y no lo hace, ya que es lo que ocurre cuando falla el sonido, que se haga un skip del video...

Sobre lo del video, en wiz/caanoo/pc, lo del cierre te refieres a esto:

fli_end(flic_id);
end_fli();

Esto lo tuve que poner sino no cerraba solo con uno, y recuerda que en pc funciona bien, esto nunca lo he tocado desde que los puse al inicio ...

Confirmame si te refieres a esto.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 05:20:59 pm
no, hombre... la is_playing retorna -1, y el while va a dar siempre true.
confirmado en dingux, funciona bien, salvo que la paleta no se actualiza, eso debe ser cosa de la implementacion SDL, ya que no hay codigo dependiente de dingux en esto.

vas a tener que generar los videos con la misma paleta.

ahora pruebo las versiones caanoo y te comento, de paso te pongo el codigo que probe.

Código: [Seleccionar]
import "mod_flic";
import "mod_map";
import "mod_screen";
import "mod_key";
import "mod_wm";
import "mod_proc";
import "mod_video";

function Rep_Video1()
PRIVATE
    flic_id;
    music_channel_id;

BEGIN

    flic_id = fli_start("Video1.flc", 0, 0);

    WHILE(!key(_ESC))
        IF (exit_status == 1)
            exit("bye", 0);
        END
        FRAME;
    END

    fli_end(flic_id);

    WHILE(key(_ESC)) frame; end;

END

function Rep_Video2()
PRIVATE
    flic_id;
    music_channel_id;

BEGIN

    flic_id = fli_start("Video2.flc", 0, 0);

    WHILE(!key(_ESC))
        IF (exit_status == 1)
            exit("bye", 0);
        END
        FRAME;
    END

    fli_end(flic_id);

    WHILE(key(_ESC)) frame; end;

END

begin
    set_mode(320,240,8);
    Rep_Video1();
    Rep_Video2();
end
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 05:23:42 pm
si, me referia a eso... y si funciona con 1 solo.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 05:31:43 pm
Mira, no puedo usar una sola paleta porque los videos tienen distinta paleta, de todas formas la solución es hacer lo que tenia, pero logicamente seria mas elegante que ahora con el fix de bennu funcione.

Te voy a pasar el codigo real que tengo actualmente, para que no pierdas tiempo con pruebas similares y puedas usar el que yo uso 100% de forma a que no nos equivoquemos.


Código: [Seleccionar]
PROCESS Video1()
PRIVATE
  flic_id;
  music_channel_id;

BEGIN


        let_me_alone();
Mus_Intro = load_wav("Vid/Intro.ogg");
Mus_Logo = load_wav("Vid/Logo.ogg");
        controls(); // Exclusivo Bennu 'Gp2x Wiz'

IF (Music == 1)
            volume(); // Exclusivo Bennu 'Gp2x Wiz'
END


        music_channel_id = play_wav(Mus_Logo, 0);

IF (Music == 0)
    vol = 0;
    set_channel_volume(-1, vol);
END

flic_id = fli_start("Vid/Logo.flc", 0, 0);

    WHILE(is_playing_wav(music_channel_id))
       IF (exit_status == 1 OR Wiz_Botao_Menu OR key(_control))
       exit("", 0);
       END
   FRAME;
    END

    fli_end(flic_id);
    end_fli();
    stop_wav(all_sound);

IF (Mus_Logo != null)
    unload_wav(Mus_Logo);
            Mus_Logo = 0;
END

    Video2();

END

PROCESS Video2()
PRIVATE
  flic_id;
  music_channel_id;

BEGIN

    let_me_alone();
    controls(); // Exclusivo 'Gp2x Wiz'


    set_mode(320, 240, 8);

    music_channel_id = play_wav(Mus_Intro, 0);

IF (Music == 0)
    vol = 0;
set_channel_volume(-1, vol);
ELSE
    volume(); // Exclusivo Bennu 'Gp2x Wiz'
END

    flic_id = fli_start("Vid/Intro.flc", 0, 0);

    WHILE((!key(_esc) AND !key(_space) AND !key(_alt) AND !Wiz_Botao_Select) AND is_playing_wav(music_channel_id))
       IF (exit_status == 1 OR Wiz_Botao_Menu OR key(_control))
       exit("", 0);
       END
   FRAME;
    END

        fli_end(flic_id);
        end_fli();
        stop_wav(all_sound);

IF (Mus_Intro != null)
    unload_wav(Mus_Intro); Mus_Intro = 0;
END

        Mus_Menu = load_wav("Snd/Menu/Menu.ogg");

IF (Music == 1)
        Mus_Menu_Channel_Id = play_wav(Mus_Menu, -1);
END

        set_mode(320, 240, 16);
FPG_Menu = load_fpg("Fpg/PPMenu.fpg");

IF (Music == 0)
    vol = vol_actual;
set_channel_volume(-1, vol);
END

        Menu();

END



Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 05:36:42 pm
perdon, dejame volver a probar porque me olvide actualizar el runtime... :P
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 05:40:46 pm
ahora si, vamos por partes... (con el ejemplo que puse yo)

confirmo... caanoo funciona correctamente...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 05:45:03 pm
Prueba el mio que es el que da problemas.

De paso dime que os_id tiene la version dingux y en que fichero del src de bennu se atribuye segun compilacion, porque quiero compilar la version pandora y asignarle un id unico (los actuales ports tienen el os_id = 1 como la de linux), sugerencias para el id ?
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 05:47:59 pm
confirmo... dingux funciona perfectamente...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 05:48:44 pm
es que el tuyo no va a funcionar... nunca chequeas por error... ni cuando cargas los audios ni cuando los usas de solo hacerlo cuando se haya cargado el audio... nunca va a funcionar.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 05:50:10 pm
no tengo sugerencias para id para pandora, los codigos se asignan en varios fuentes, en el bgdi/misc.c (o algo asi) y tambien en el core, y en un .h en include.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 05:51:09 pm
Jolin, me estas liando la marrana xDDD

A ver, el mio funciona, ha funcionado siempre, salvo en esta nueva version...

Y respondeme lo otro que estoy en 2 frentes, necesito el os_id de dingoo y saber lo de pandora.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 05:58:05 pm
A ver splinter, escuchame:

1 - El tuyo no pruebas el set_mode, que en realidad es lo que esta fallando, o sea, tu ejemplo no sirve para nada...

2 - El mio uso la musica para comprobar el video, es cierto que no seria necesario, pero lo tengo que hacer por una cosa que no te has fijado, a ver voy a cojer el comentario que tengo en el codigo en portugues (que borre al ponerte el codigo) y a traducirlo para que sepas porque lo hago de esta forma:

WHILE(is_playing_wav(music_channel_id))

--> Permite que en Windows si arrastramos la ventana, el congelamiento no afecte el tiempo de video, y el video sólo va durar lo que dura la musica, siendo la duración de la musica quien controle el timing del video
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 06:14:40 pm
confirmado, wiz tambien funciona perfectamente...

-------------

hombre, pero el os_id de dingux lo puedes obtener facilmente, no necesitas preguntar... usas say(os_id); y capturas la salida o un write_int os_id, con eso ya esta.

vamos que haciendo un grep o un search in files, puedes buscar donde estan las cosas...

los defines estan en commons_defs.h, en main_core.c y en misc.c tambien tienes que tocar.

vamos que no necesitas preguntar esas cosa.

-----

bien, probado el tema de la paleta, y si funciona perfectamente en todas las plataformas...

se te queda la pantalla en negro porque se queda en el loop, pero deberia salir si pulsas las teclas...

pero enserio, necesitas ordenar y limpiar ese codigo.

prueba los ejemplos que te puse para que veas que si funciona.

luego debes corregir el uso del sonido en tu ejemplo.

condicion de error es -1 o 0, o sea, que si las funciones de carga, reproduccion, chequeo de estado, da alguno de esos errores, entonces hay un error... y si no cargo el sonido, no debes hacer un while is_playing, y menos un !, en todo caso has un is_playing > 0
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 06:15:13 pm
A ver splinter, escuchame:

1 - El tuyo no pruebas el set_mode, que en realidad es lo que esta fallando, o sea, tu ejemplo no sirve para nada...

2 - El mio uso la musica para comprobar el video, es cierto que no seria necesario, pero lo tengo que hacer por una cosa que no te has fijado, a ver voy a cojer el comentario que tengo en el codigo en portugues (que borre al ponerte el codigo) y a traducirlo para que sepas porque lo hago de esta forma:

WHILE(is_playing_wav(music_channel_id))

--> Permite que en Windows si arrastramos la ventana, el congelamiento no afecte el tiempo de video, y el video sólo va durar lo que dura la musica, siendo la duración de la musica quien controle el timing del video

muchacho, ya probe con set_mode, lo saque del ejemplo, porque no hacia nada...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 06:17:20 pm
Sobre Pandora, le voy a poner el 1010

Y sobre este problema, mira dejalo, ya veo que todo funciona perfectamente, a lo mejor son mis consolas que se les ha ido la oya, las tirare por la ventana...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 06:18:09 pm
te repito, en dingux esta deshabilitado el sonido, y si el sonido falla en la carga, estaras haciendo cualquier cosa...

eso que has dicho de windows, el sonido y el video al arrastrar no tiene relacion en lo mas minimo... esto me suena a los reportes de los operadores de sistemas, cuando quieren reportar un bug... si es dia lunes, llueve y justo pasa una ambulancia por la puerta de la oficina, se cae el sistema.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 06:19:14 pm
Sobre Pandora, le voy a poner el 1010

Y sobre este problema, mira dejalo, ya veo que todo funciona perfectamente, a lo mejor son mis consolas que se les ha ido la oya, las tirare por la ventana...

no son las consolas, necesitas ordenar tu codigo... vamos que no cuesta nada hacerlo, yo sinceramente tengo trabajo que hacer y no puedo perder el tiempo en ordenarte el codigo, disculpame y espero entiendas.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 06:40:20 pm
Mira splinter, he estado volviendo a poner tal como funcionaba con anterior runtime, y el problema sigue.

He estado estudiando el tema, y creo que el problema no proviene del fix que has hecho, creo que el problema esta en el modulo de sonido, el video se corta a los 2 segundos, porque el sonido inexplicablemente se reinicia lo que hace que el video termine...

Y es por eso que despues durante el juego le ocurre lo mismo a la musica, el play_wav esta constantemente reiniciandose a los 1, 2 segundos... Sólo funcionan bien los sonidos con menos de 2 segundos de duracion..
Miralo que creo que algo ha cambiado en la gestion del play_wav...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 06:54:22 pm
es lo que te estoy diciendo... dingux deshabilita el sonido, y retorna -1 en el is_playing, si haces un while(-1) va a estar eterno ahi.

ya no se como explicarlo...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 07:02:36 pm
Splinter, tonto yo por hablarte de dingux.

Que no estoy haciendo pruebas en dingux, me importa un pepino que falle, pues estoy poniendo el sonido por medio y en dingux no hay sonido.

Estoy hablando de Caanoo y Wiz
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 07:13:57 pm
ah, vale... luego hare pruebas con sonido... pasame los sonidos y videos que usas tu, asi lo probare... pero ahora no puedo.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 10:43:00 pm
Te puedo asegurar que el problema es en el codigo bennu de tu ultima distro (o de alguna anterior pero reciente), he cambiado el runtime y vuelve a funcionar de maravilla.

El viejo rutime que uso es el r244, si tienes las distros posteriores para descarga puedo probarlas para certificarnos en que version se ha iniciado el error.

He mirado el codigo de bennu, y veo que en las ultimas versiones has tocado algo del sonido en el core.

Puedes usar tu video con una musica cualquiera usando el ejemplo que he puesto para que hagas la prueba.

Te doy otro ejemplo:

En la pantalla de opciones tengo la opcion de parar el sonido, si lo paro este para, pero si lo pongo a sonar de nuevo queda sonando y a los 2 segundos se vuelve a reiniciar, asóí en un loop infinito.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 11:10:13 pm
a ver... vuelvo a repetir, no estas haciendo los chequeos de error... en versiones anteriores se estaban reportando mal los errores de sonido, cosa que se corrigio en la ultima version...

hazme caso por favor y chequea bien los errores...

o ponme un ejemplo, con un buen control de errores con el problema... con sonidos y videos, asi probamos lo mismo.

no digo que no haya un error, pero sin un ejemplo no puedo comprobarlo, mis pruebas de sonido y flc/fli, funcionan a la perfeccion.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 01, 2011, 11:51:20 pm
che, free, en serio, media pila... funciona perfecto... aca te dejo el ejemplo...

Código: [Seleccionar]
import "mod_flic";
import "mod_map";
import "mod_screen";
import "mod_key";
import "mod_mouse";
import "mod_wm";
import "mod_proc";
import "mod_video";
import "mod_sound";
import "mod_say";

global
    Mus_video1;
end


function Rep_Video1()
PRIVATE
    flic_id;
    music_channel_id;

BEGIN

    music_channel_id = play_wav(Mus_video1, 0);

    flic_id = fli_start("Video1.flc", 0, 0);

    WHILE(!mouse.left && !key(_ESC) && ( ( music_channel_id >= 0 && is_playing_wav(music_channel_id) > 0 ) || music_channel_id < 0 ))
        IF (exit_status == 1)
            exit("bye", 0);
        END
        FRAME;
    END

    fli_end(flic_id);
    stop_wav(all_sound);

    WHILE(mouse.left || key(_ESC)) frame; end;

END

function Rep_Video2()
PRIVATE
    flic_id;
    music_channel_id;

BEGIN

    music_channel_id = play_wav(Mus_video1, 0);

    flic_id = fli_start("Video2.flc", 0, 0);

    WHILE(!mouse.left && !key(_ESC) && ( ( music_channel_id >= 0 && is_playing_wav(music_channel_id) > 0 ) || music_channel_id < 0 ))
        IF (exit_status == 1)
            exit("bye", 0);
        END
        FRAME;
    END

    fli_end(flic_id);

    WHILE(mouse.left || key(_ESC)) frame; end;

END

begin
    Mus_video1 = load_wav("intro.wav");

    set_mode(320,240,8);
    Rep_Video1();
    Rep_Video2();
end

lo probe en wiz y dingux, no probe en caanoo, porque ya no tiene sentido hacerlo si los otros ya funcionan...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 11:52:11 pm
A ver, vamos por partes a ver si nos aclaramos.

1 - Que has cambiado en el chekeo del sonido y en que version ?

2 - Donde esta el error al hacer un play_wav como hago durante el juego ?
Insistes en que tengo errores, pero donde estan ?
Si cargo la musica antes, es logico que esta exista, te repito, es al sonar esta se repite.
Que error puede existir en una musica para que se reseté y repita a los 2 segundos ?

3 - En PC funciona bien, no habras cambiado nada en las directivas de compilación ?

4 - Tienes la demo de sonidos que te puse hace tiempo ?
La pruebo mañana a ver, pero he porbado otros juegos, el tema es que casi todos usan play_song, y no sirven de prueba.

5 - MAñana haré  pruebas con otros ejemplos.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 01, 2011, 11:53:19 pm
Mañana pruebo tu ejemplo, me voy a la cama...

Y de paso te pongo un video para que lo veas tu mismo...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 12:01:22 am
por favor, revisa el ejemplo, song es lo mismo... por favor, prueba, ejecuta cosas sin los wav, imprime los retornos de las funciones cuando van bien y cuando van mal, y aprenderas por que fallan las cosas.

revisa mi codigo, no te limites a probarlo.

no necesito un video, no hace falta, se que andara mal porque estan mal hechos los chequeos.

que descances.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 12:15:14 am
Splinter, ya no vamos a discutir mas y sabes porque ?

Porque el tuyo tambien falla

Ocurre exactamente lo mismo, cada uno de los videos se corta a los 2 segundos, por la musica.

Lo unico que he cambiado de tu ejemplo, son los videos y la musica, que es formato ogg (como sabes play_wav tambien soporta ogg).
Y he puesto 2 musicas distintas.

En PC el tuyo tambien funciona.

Y un reparo mas, tu codigo si no grabas una musica que exista, el primer video se visualiza (y solo el primero), cuando no deberia hacerlo pues no existe musica...

la version del firmware es la 1.6.0 y ahora pruebo en la otra caanoo que tengo, version de firm: 1.5.0,
sorpresa!!!!
En la 1.5.0 ocurre exactamente lo mismo...

Puffffff.....
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 12:21:03 am
Te pongo el mio, para que no tengas ninguna duda:

Código: [Seleccionar]
import "mod_flic";
import "mod_map";
import "mod_screen";
import "mod_key";
import "mod_mouse";
import "mod_wm";
import "mod_proc";
import "mod_video";
import "mod_sound";
import "mod_say";

global
    Mus_video1;
Mus_video2;
end


function Rep_Video1()
PRIVATE
    flic_id;
    music_channel_id;

BEGIN

    music_channel_id = play_wav(Mus_video1, 0);

    flic_id = fli_start("Vid/Logo.flc", 0, 0);

    WHILE(!mouse.left && !key(_ESC) && ( ( music_channel_id >= 0 && is_playing_wav(music_channel_id) > 0 ) || music_channel_id < 0 ))
        IF (exit_status == 1)
            exit("bye", 0);
        END
        FRAME;
    END

    fli_end(flic_id);
    stop_wav(all_sound);

    WHILE(mouse.left || key(_ESC)) frame; end;

END

function Rep_Video2()
PRIVATE
    flic_id;
    music_channel_id;

BEGIN

    music_channel_id = play_wav(Mus_video2, 0);

    flic_id = fli_start("Vid/Intro.flc", 0, 0);

    WHILE(!mouse.left && !key(_ESC) && ( ( music_channel_id >= 0 && is_playing_wav(music_channel_id) > 0 ) || music_channel_id < 0 ))
        IF (exit_status == 1)
            exit("bye", 0);
        END
        FRAME;
    END

    fli_end(flic_id);

    WHILE(mouse.left || key(_ESC)) frame; end;

END

begin
    Mus_video1 = load_wav("Vid/Logo.ogg");
Mus_video2 = load_wav("Vid/Intro.ogg");

    set_mode(320,240,8);
    Rep_Video1();
    Rep_Video2();
end
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 12:26:27 am
puff...

no se corta a los 2 segundos, que va, el mio va mucho mas de 2 segundos... cuando la musica termina, obviamente que termina el video porque asi esta en el codigo (prg) que haga.

hombre, que se visualice el video cuando no hay musica es intencional, lo puse para que veas el ejemplo que si funciona incluso en dingux... si quieres que no se vea el video quitas el "|| music_channel_id < 0"... y claro que muestra el primero porque para que muestre el 2do tienes que pulsar la pantalla en caanoo/wiz y select en dingux.

en serio, ya me estoy cabreando, ya todo lo puse "for dummies", y funciona a la perfeccion...

en serio, esta simple la cosa... ahora si estamos de chascarrillos por favor, dimelo...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 12:53:41 am
Splinter prueba con el formato ogg como pongo yo en el ejemplo, no vaya a ser eso...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 12:54:18 am
ok, voy a probarlo... en que plataforma?
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 01:21:59 am
bueno, free, ya no pruebo mas... lo probe para darte el gusto, pero probe con un ogg, y funciona a la perfeccion... se reproduce el video, cuando termina se para y espera que termine la musica, luego de eso, carga el otro video, lo reproduce y ejecuta la musica... probe con el mismo ogg para los 2 videos, con 2 ogg diferentes, con 1 wav y 1 ogg, uno para cada video, y funciona perfecto...

esta vez probe en caanoo.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 08:39:49 am
Pasame tu ejemplo completo con los recursos.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 01:10:08 pm
http://www.megaupload.com/?d=OP95I4F5

password iop123
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 02:15:31 pm
Probado en Caanoo, el tuyo tambien falla, pero lo raro es que sólo falla el segundo video.

En pc funcionan los 2 videos bien.

1 - Estas seguro que has puesto el nuevo runtime en tu caanoo ?

2 - Yo compilo en Windows con mochila, intenta hacer lo mismo.


Mirando el txt de error pone 'Segment Fault', y coroboro lo dicho, me he fijado que usas un ogg sólo en el segundo video.

Con lo cual ya tienes las pistas de que estoy en lo cierto, los ficheros ogg estan fallando...
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 02:39:09 pm
Ya tengo el veredicto.

El problema esta en el uso de la mochila.
Problemas con ogg's (play_wav) --> Segment Fault


Si pones los recursos sueltos, las ogg's funcionan en play_wav, uses o no mochila con tu dcb, si dejas sólo el dcb con mochila, las ogg's fallan (se reinician a cada 1,2 segundos).
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 07:20:10 pm
no uses mochila entonces, puede que falle, la memoria es escasa y vaya a saber que hace la mixer o que pasa cuando se va quedando sin memoria.

pero ya me parecia, no podia ser que a mi me funcione y a ti no.

saludos.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 07:41:48 pm
Tendre que usar el bennu antiguo entonces
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 08:05:18 pm
mmmm... si dices que antes funcionaba, chequeare la mochila entonces.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 09:55:02 pm
http://bennugd.svn.sourceforge.net/viewvc/bennugd/modules/mod_sound/mod_sound.c?r1=250&r2=258

http://bennugd.svn.sourceforge.net/viewvc/bennugd/core/bgdc/src/c_data.c?r1=245&r2=258

Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 10:30:43 pm
el cambio del mod_sound... olvidate, los sonidos no cargaban con esos cambios, ademas, esos cambios fueron de esa version, todas las anteriores no lo tenian...

el cambio del compilador, no tiene nada que ver, son con arrays, tu no estas usando arrays, ademas no tiene nada que ver con el sonido.

me encanta tu forma de analizar los bugs... jejeje...

voy a probar yo...

pero olvidate de esos cambios, porque esos cambios que mencionas, justamente no funcionaba el sonido, fallaban la carga de todo sonido.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 10:32:09 pm
para ilustrarte un poco mas... version anterior (y de toda la vida)

http://bennugd.svn.sourceforge.net/viewvc/bennugd/modules/mod_sound/mod_sound.c?r1=244&r2=258
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 10:37:06 pm
puede ser el files.c... ahora voy a probar.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: SplinterGU en Agosto 02, 2011, 10:55:57 pm
confirmado, efectivamente era un cambio que meti en la file (entre tantas pruebas que hice para ver si lograba hacer funcionar el sonido en dingux) y olvide volver atras que afecta a las mochilas...

no solo falla en las consolas, sino que falla en todas las plataformas, asi que tendre que generar binarios nuevos...

por favor, te ruego, te suplico, que la proxima vez, me des mas detalles del problema (plataforma, si usas mochila o no, ejemplos con recursos, version del operativo/firmware, etc), si que me has hecho parir buscando problemas en el sonido y demas... al final era la file.

gracias.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 10:57:24 pm
De la r244 a la r262 van muchas versiones, sólo probe en estas 2, si tienes los binarios intermedios los podria probar, pero aqui no los tengo, y así nos acercariamos a la version donde se estropeo esto, posiblemente sea una version que nisiquiera tuvo releases.
Título: Re: BUG en reprodución de FLC/FLI 8bits
Publicado por: FreeYourMind en Agosto 02, 2011, 10:58:53 pm
confirmado, efectivamente era un cambio que meti en la file (entre tantas pruebas que hice para ver si lograba hacer funcionar el sonido en dingux) y olvide volver atras que afecta a las mochilas...

no solo falla en las consolas, sino que falla en todas las plataformas, asi que tendre que generar binarios nuevos...

por favor, te ruego, te suplico, que la proxima vez, me des mas detalles del problema (plataforma, si usas mochila o no, ejemplos con recursos, version del operativo/firmware, etc), si que me has hecho parir buscando problemas en el sonido y demas... al final era la file.

gracias.


Bueno has posteado mientras posteaba, tu tambien me has hecho sufrir xDDD
Pues nada, cuando vea que funciona intentaré compilar la version pandora.