Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ogg: Problemas Con La Función

Iniciado por DraKKaR, 23 de Octubre de 2003, 03:45:13 PM

« anterior - próximo »

DraKKaR

 Hola, seré breve: estoy utilizando la libreria vorbis para implementar OGG en mi motor.
El problema es que al ejecutar la función ov_open() el programa explota por los aires. Por inet dicen que es por linkar contra librerias que no toca, pero he probado de todo y no funciona. ¿Alguien sabe algo de esto?

El código donde peta es:


oggFile=fopen(file,"rb");
if (!oggFile)
{
 ERROR_STUFF(ERROR_FILENOTFOUND,file);
 return false;
}

if (ov_open(oggFile,&oggStream,NULL,0)<0)  // <--- Aqui está el problema
{
 fclose(oggFile);
 ERROR_STUFF(ERROR_LOADINGFILE,file);
 return false;
}


Se que algunos de vosotros habeis implementado esto mismo y puede que os hayais topado con este problema. Agradecería cualquier pista.

Gracias.

seryu

 como me lo has pedido a titulo personal en el otro foro, voy a hacer lo qe casi nunca hago, y es responder dudas de programacion en foros.

suponiendo el resto de codigo.. yo diria qe esta todo bien, no parece un problema de tu codigo.

eso de qe te peta es xqe simplemente se corta el programa y adios, o te devuelve un error?? xqe de ser asi podrias mirar el tipo de error, qe puede darte una mejor ayuda...

por cierto, yo qe tu probaria a compilar con la libreria estatica, de esa forma sabras si es un problema de dll's

espero haberte sido de ayuda, y siento no poder decirte mucho mas  :)  

DraKKaR

 Primero de todo, gracias por responder.

Citar
eso de qe te peta es xqe simplemente se corta el programa y adios, o te devuelve un error?? xqe de ser asi podrias mirar el tipo de error, qe puede darte una mejor ayuda...


Cuando entra a ejecutar la función ov_open() el programa saca por pantalla el típico error de cuando intentas acceder a una posición de memoria inválida y al darle a "no enviar" se cierra.


Probaré lo de linkar con las librerias estáticas a ver como va.
De todas formas me gustaría ver código fuente donde esto funcione.

¿Nadie más ha hecho nada con la SDK de vorbis para reproducir archivos OGG?

ShAq

 Bueno te puedo enseñar el trozo de codigo de mi libreria en el que abro el fichero.
En la libreria he linkado con las librerias estaticas ( vorbisfile_static.lib ogg_static.lib )
aunque es igual ke tu codigo, xD, pero te aseguro ke funciona. (ole)

// open OGG file
   FILE    *f;
   OggVorbis_File vf;    
   f = fopen(filename, "rb");
   if (!f) return false;
   ov_open(f, &vf, NULL, 0);


suerte B)  

synchrnzr

 Si tienes reservada en oggStream memoria suficiente para contener una estructura OggVorbis_File está bien el código. Del tema del linkaje no te puedo decir nada obviamente :lol:

sync

DraKKaR

 Será posible: pues acabo de lincar contra las librerias estáticas de la OGG y funciona! De todas formas creia que ya habia probado eso v.V
¿Como es posible que las propias DLLs que vienen con el SDK den ese error?
En fin, gracias a todos chicos! ahora por lo menos ya no rebienta el programa en esa función, lo único que pasa ahora es que no se oye nada XDDD.. pero eso corre de mi cuenta el arreglarlo.  (nooo)

Astat

 solo un comentario a proposito de usar OggVorbis... nosotros lo estabamos usando junto con la genial libreria de fisica ODE, y nos dio muchos problemas al cambiar el modo de la unidad de flotantes. Esto probocaba errores catastroficos en la libreria de fisica. Intentamos usar la version que no usa flotantes de Ogg (pensada para dispositivos portatiles) y la tubimos que desechar porque bajaba bastante los fps.

Al final usamos los graphs de dsound con el codec WMA.

Un saludo

DraKKaR

 Bien, ya he corregido el fallo y ya reproduce los OGG correctamente.

Astat: yo no aprecio ninguna bajada de rendimiento al reproducir los OGG.

Gracias a todos por atenderme  ;)  

seryu

 joer, xqe no me haran a mi tanto caso cuando posteo dudas?  (grrr)  

Astat

 La bajada en los fps la notamos cuando usamos la version SIN FLOTANTES de OggVorbis (creo que se llama "Tremor"), no con la original.

seryu

Cita de: "Astat"

Al final usamos los graphs de dsound con el codec WMA.

Un saludo
os recomiendo usar entonces directshow y tirar de un filtro de vorbis ogg.

ademas, trabajando con directx es la forma mas rapida de poder cargar el formato qe qerais, mp3, wma, ogg.. o los qe tengan qe venir. esta tirado programarlo asi..

DraKKaR

 Seryu: pero se pierde portabilidad.

Quizá con la llegada de OpenML....

seryu

Cita de: "DraKKaR"Seryu: pero se pierde portabilidad.

Quizá con la llegada de OpenML....
drakkar, qe portabilidad pierdes usando directshow envez de directsound?? me parece qe has entendido mal los post.  O_O  

Mars Attacks

 Estaba respondiendo a Astat, no a ti, Drakkar :)

DraKKaR

 Mea culpa. Pasaré toda la noche fustigándome para resarcirme de mi error.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.