es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo lidiar con la fuga de memoria de VLC al simplemente reproducir y detener con filtro de video activado.

Estoy observando una fuga de memoria (10M cada vez) cuando reproduzco->detengo->reproduzco->detengo un archivo mp4 local usando tanto libvlcsharp como el reproductor multimedia oficial VLC (3.0.16) cuando se aplica un filtro de video.

Dado que tengo alrededor de 10 VideoView mostrados simultáneamente en mi programa, aparece un error OOM en aproximadamente 20 operaciones de reproducción y detención.

Estoy usando c# y he intentado GC.Collect() en mi programa, pero no funcionó. ¿Hay algo que pueda hacer al respecto?

FYI: Los filtros de video que he probado son: ripple, sharpen, wave. Y tanto libvlcsharp como VLC media player funcionan bien sin filtro de video.

Edit 1: El vout es dx3d11 y estoy usando el reproductor multimedia VLC en Windows 10.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para la fuga de memoria al utilizar libvlcsharp y VLC Media Player con un filtro de video

    Si está experimentando un problema de fuga de memoria al reproducir y detener un archivo MP4 local utilizando tanto libvlcsharp como VLC Media Player, lo que ocurre especialmente cuando se aplica un filtro de video, intente las siguientes opciones:

    1. Reproducir y depurar el problema: intente reproducir el problema y depurarlo utilizando herramientas de perfilado de memoria como dotMemory o Visual Studio’s Diagnostic Tools para identificar dónde está ocurriendo la fuga, así como otros datos relevantes como la cantidad de memoria que se está filtrando, su tipo y su frecuencia.
    2. Comprobar las actualizaciones: revise cualquier actualización de las bibliotecas o software que esté utilizando, como libvlcsharp y VLC Media Player, que puede incluir correcciones de errores que solucionen el problema de la fuga de memoria.

    3. Utilizar un filtro de video diferente: intente utilizar un filtro de video diferente o ninguno en absoluto para ver si esto afecta a la fuga de memoria. Los filtros de video que ha probado hasta ahora – ripple, sharpen, wave – pueden tener algunos problemas de incompatibilidad que conducen a la fuga de memoria.

    4. Comprobar la compatibilidad de vout y SO: Verifique la compatibilidad de la salida de video (vout) y el sistema operativo (SO) de las bibliotecas o software que está utilizando. En este caso, la vout es dx3d11 y el VLC Media Player está en Windows 10. Asegúrese de que sean compatibles y no haya errores conocidos.

    5. Revisar las fugas de recursos: Asegúrese de que su programa no esté filtrando ningún otro recurso, como flujos de archivos, sockets de red y objetos gráficos. Estos también pueden provocar fugas de memoria cuando no se desechan correctamente.

    6. Otras opciones de gestión de memoria: Considere otras opciones de gestión de memoria, como agrupar objetos en lugar de crearlos y desecharlos, utilizar referencias débiles cuando sea posible y utilizar la interfaz IDisposable y la sentencia using para recursos administrados.

    En general, asegúrese de seguir monitoreando y probando su programa para el problema de fuga de memoria y utilice herramientas de rendimiento relevantes para identificar y resolver cualquier problema nuevo o existente.

Comments are closed.