ijkplayer硬解
2017-05-04 11:26:23 0 举报
ijkplayer硬解流程图
作者其他创作
大纲/内容
drain_output_buffer_l
for (;;)
mp-ffplayer-vout = SDL_VoutAndroid_CreateForAndroidSurface()
feed_input_buffer
调用
video_thread
ffpipenode_create_video_decoder_from_android_mediacodec
frame_queue_peek
从硬解码中获得解码后的数据
判断走软解还是硬解
送到解码器解码
video_refresh
SDL_AMediaCodec_queueInputBuffer
SDL_VoutDisplayYUVOverlay
opaque-enqueue_thread = SDL_CreateThreadEx
创建input_thread线程
若走硬解则执行
video_display2
从队列中取出数据
SDL_VoutAndroid_CreateForANativeWindow
把数据插入到显示队列ijkplayer-ffplayer-is-pictq中
ijkmp_android_create()
ffpipenode_run_sync(ffp-node_vdec)
ffp-node_vdec-func_run_sync(node)
video_image_display2
func_open_video_decoder
视频解码线程创建
ffp_queue_picture
video_refresh_thread
mp-ffplayer-pipeline = ffpipeline_create_from_android(mp-ffplayer)
将获取到的视频包推入videoq队列中
node-func_run_sync = func_run_sync
drain_output_buffer
完成渲染
stream_component_open
SDL_AMediaCodecFake_dequeueOutputBuffer
vout-display_overlay = func_display_overlay
pipeline-func_open_video_decoder = func_open_video_decoder
ffp_packet_queue_get_or_buffering
收藏
收藏
0 条评论
下一页