![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
En el debug me sale en call FreeDeviceContexts, si le doy a ctr+F3 me va al boton que llama la función de codificación, pero no me aclara nada, o sea, en código va a:
Cita:
Cita:
Yo no sé a vosotros, pero yo debugeando con Delphi lo hago a nivel un poco básico y esto del ctrl+F3 y viendo la pila con esas instrucciones en ensamblador no me han aclarado casi nunca los problemas que he tenido... ![]() |
|
#2
|
|||
|
|||
|
mmm bueno te aclara exactamente donde te salta la excepcion... y la ruta q lo ha provocado...el ctrl+f12 es para ver la memoria en asm
PD: DesabilitaTodo? he tenido un dejavu? XD PDD: FLAC etc... son las externas? puedes poner TODA la funcion? (p.e. , pencoder q es?) si te salta alli y el tipo de argumento pcm es el correcto (pencoder supongo q sera el buffer destino, al cual se le habra asignado memoria etc...) entonces es q la funcion FLAC es la q esta mal :/ PDDD: exactamente, el ctrl+f3 te muestra el stack de funciones, esto es, la pila con las direcciones de memoria de las funciones q se han ido llamando. El stack overflow ocurre cuando esta pila esta llena (sin mem), por eso lo de llamar a funciones autorecursivas q te decia, porque si haces por ejemplo procedure f ; begin f end; se llena el stack hasta provocar excepcion. otraD: has mirado si el contador i es lo bastante grande para llegar a (necesarias*channels -1 )? si no es el caso, el bucle seria infinito y provocaria el stack overflow. Última edición por coso fecha: 01-06-2008 a las 20:08:11. |
|
#3
|
||||
|
||||
|
El Dejavú está justificado, era un problema que tuve hace tiempo que ya solucioné y al cuál creo que tú me ayudaste
.Bueno, creo que llegado este punto va a ser un follón intentar seguir ahondando más, ya que la función codificadora viene de un código de Visual C++, o sea, la tengo importada a través de una dll. pencoder es un puntero a un objeto que contiene inicializaciones del codificador e incluso el propio archivo codificado. La función funciona perfectamente para archivos de un tamaño de hasta 300Mb más o menos, por lo que si fuera fallo de la función el error saldría desde el principio, ¿no? El problema de la pila sin embargo tiene que venir de la función codificadora, sí, se ve que la función no está alojando espacio suficiente para un archivo de suficiente tamaño...no le voy a dar más vueltas creo, ya que en principio la aplicación se usa en un 90% de los casos para pistas sueltas de audio que no suelen superar la media hora, con lo que la codificación es correcta .Gracias de nuevo por tu ayuda coso, y por todos los que colaboráis conmigo. |
|
#4
|
||||
|
||||
|
Ah, se me olvidaba, a tu último posdata: necesarias vale como mucho 1024, o sea, que el valor máximo de i será:
1024*2-1 |
|
#5
|
|||
|
|||
|
ok, pero...
-me referia a tu funcion -no se tendria q llamar solo una vez a FLAC_stream_encoder_process? -los valores de pcm estan en el rango correcto? (con el shl 8 quiza crecen mucho) -no le deberias dar tu la memoria suficiente a pencoder? -si haces watch de las variables cuando te salta la excepcion, sabras hasta q limites aguanta la FLAC_stream_encoder_process... bueno, algunas ideas...a ver si al final lo solucionas o algo venga |
|
#6
|
||||
|
||||
|
La función está fuera del bucle for, pero dentro de otro bucle "padre", por lo que se ejecuta muchísimas veces, a cada vez se le pasa sólo un trocito del wav en el array pcm.
Voy a mirar lo que me dices más a fondo, a ver si averiguo exactamente el valor que lo hacer petar, ya mañana te cuento cómo me fue (se me ha hecho un poco tarde )De todas formas es bien raro, porque aunque haga el desplazamiento ese fijo que eso está bien porque haciendo esa operación puedo trabajar con codificaciones de hasta 300Mb, el problema viene por la función codificadora FLAC_stream_encoder_process por narices, raro raro. Un saludo¡¡ |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| stack overflow | juan francisco | Varios | 6 | 28-05-2008 22:26:15 |
| Stack overflow | aonarres | API de Windows | 5 | 29-02-2008 13:07:11 |
| Stack overflow al reabrir una tabla | jzginez | Conexión con bases de datos | 1 | 24-04-2007 16:52:53 |
| Stack Overflow | agonzalez | Varios | 5 | 08-12-2006 22:26:46 |
| Stack Overflow | Mariana | Varios | 14 | 30-10-2003 11:37:47 |
|