"Análisis de la estructura de datos de
ffplay " "Análisis de ffplay (operación del hilo de decodificación de video)"
"Análisis de ffplay (operación del hilo de decodificación de audio)"
Análisis del funcionamiento de ffplay desde el inicio hasta la lectura del hilo
- 1. Análisis:
-
- 1. main (): inicializa ffmpeg
- 2. main (): procesamiento de análisis de los parámetros de la línea de comandos de ffplay
- 3. main (): inicialización de SDL
- 4. main (): inicializa el paquete de descarga del decodificador
- 5. main (): ventana de creación de SDL
- 6, main (): abre varias secuencias y comienza a leer hilos de datos
- 7. stream_open (): asigne el nombre del VideoState para guardar el archivo
- 8. stream_open (): Inicializa la cola de tramas (después de la decodificación) / cola de paquetes (antes de la decodificación) e inicializa las variables de condición utilizadas para controlar el sueño del hilo de lectura
- 9. stream_open (): inicializa el reloj e inicializa el volumen
- 10: stream_open (): comienza a leer el hilo de datos
- 11: read_thread (): inicializa el valor de índice predeterminado de cada flujo, inicializa la función de devolución de llamada de interrupción de lectura ffmpeg
- 12. read_thread (): operación de archivo abierto (avformat_open_input (), avformat_find_stream_info ())
- 13. read_thread (): procesa si especificar la hora de inicio de la reproducción y si se trata de datos de transmisión en tiempo real
- 14. read_thread (): establece el índice de transmisión de cada transmisión
- 15. read_thread (): establece el ancho y alto de la ventana de visualización
- 16, read_thread (): abre cada operación de flujo
- 17. read_thread (): el búfer de configuración de juicio de flujo en tiempo real no está limitado
- 18. read_thread (): leer datos cíclicamente (determinar si solicitar salir, si suspender la operación de flujo de red)
- 19. read_thread (): leer datos cíclicamente (para determinar si hay una operación de búsqueda)
- 20. read_thread (): lee datos de forma cíclica (para determinar si el video es attachments_pic)
- 21. read_thread (): lee datos cíclicamente (para juzgar si la cola tiene suficientes datos)
- 22. read_thread (): lee datos cíclicamente (para juzgar si la reproducción se ha completado)
- 23. read_thread (): lee datos cíclicamente (ejecuta av_read_frame () para leer datos del marco)
- 24. read_thread (): lee datos de forma cíclica (determina si el fotograma está dentro del rango de reproducción)
- 25. read_thread (): leer datos cíclicamente (procesamiento de salida del hilo)
1. Análisis:
1. main (): inicializa ffmpeg
2. main (): procesamiento de análisis de los parámetros de la línea de comandos de ffplay
3. main (): inicialización de SDL
4. main (): inicializa el paquete de descarga del decodificador
5. main (): ventana de creación de SDL
6, main (): abre varias secuencias y comienza a leer hilos de datos
7. stream_open (): asigne el nombre del VideoState para guardar el archivo
8. stream_open (): Inicializa la cola de tramas (después de la decodificación) / cola de paquetes (antes de la decodificación) e inicializa las variables de condición utilizadas para controlar el sueño del hilo de lectura
9. stream_open (): inicializa el reloj e inicializa el volumen
10: stream_open (): comienza a leer el hilo de datos
11: read_thread (): inicializa el valor de índice predeterminado de cada flujo, inicializa la función de devolución de llamada de interrupción de lectura ffmpeg
12. read_thread (): operación de archivo abierto (avformat_open_input (), avformat_find_stream_info ())