IJKPlayer使用MediaCodec解码和渲染视频过程分析
来源:互联网 发布:网络录像机添加摄像头 编辑:程序博客网 时间:2024/06/08 08:50
IJKMediaCodec 解码分析
1.func_run_sync(IJKFF_Pipenode *node) /ffpipenode_android_mediacodec_vdec.c
—-drain_output_buffer(env, node, timeUs, &dequeue_count, frame, &got_frame);
—-drain_output_buffer_l(env, node, timeUs, dequeue_count, frame, got_frame);
在drain_output_buffer_l中调用SDL_AMediaCodecFake_dequeueOutputBuffer /ijksdl_codec_android_mediacodec.c
SDL_AMediaCodecFake_dequeueOutputBuffer是对Android MediaCodeC方法dequeueOutputBuffer反射调用,获取到解码后的一个output_buffer_index。
接着调用 amc_fill_frame—> SDL_VoutAndroid_obtainBufferProxy-> SDL_VoutAndroid_obtainBufferProxy_l.调用结束后frame(其实是ffmpeg AVFrame)参数中的opaque指针指向返回的proxy。
2.如果got_frame参数为true,调用 ffp_queue_picture(ffp, frame, pts, duration, av_frame_get_pkt_pos(frame), is->viddec.pkt_serial) 。ffp_queue_picture->queue_picture。在queue_picture中调用frame_queue_peek_writabl为eFrame *vp分配新的空间,接着初始化vp相关的成员变量,最后调用frame_queue_push方法把帧加入队列。
IJK ff_ffplay流程分析
- IJKPlayer使用MediaCodec解码和渲染视频过程分析
- Android使用MediaCodec解码视频并用OpenGL ES进行渲染的思路
- Android使用MediaCodec解码H264视频解码器
- 使用mediacodec 解码AAC
- iOS ijkplayer 视频渲染(显示)
- framework MediaCodec解码流程分析
- 使用MediaCodec播放视频
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- Android 用MediaCodec实现视频硬解码
- 【数据结构】链表——客房管理
- UIImageView
- LeetCode 76 Minimum Window Substring
- 2084 杭电 数塔【简单dp】
- Android实现https网络通信之添加指定信任证书/信任所有证书
- IJKPlayer使用MediaCodec解码和渲染视频过程分析
- iOS NSNotification的使用
- 简单c-3
- 详解:502 Bad Gateway nginx/xxx
- [转]如何手动启用/禁用磁盘写入缓存
- str家族
- ubuntu 安装java jdk 全套教程
- 49骰子数独(13)115(14)
- OrientDB 图状数据库示例