白猪掌柜的

创建一个VideoPicture结构体用来保存解码出来的图像。/** SDL_Lesson.c** Created on: Aug 12, 2014* Author: clarck*/#include #include #include "SDL.h"#include "SDL_thread.h"#include "SDL_events.h"#include "../include/logger.h"#include "../ffmpeg/include/libavcodec/avcodec.h"#include "../ffmpeg/include/libavformat/avformat.h"#include "../ffmpeg/include/libavutil/pixfmt.h"#include "../ffmpeg/include/libswscale/swscale.h"#include "../ffmpeg/include/libswresample/swresample.h"#define SDL_AUDIO_BUFFER_SIZE 1024#define MAX_AUDIO_SIZE (5 * 16 * 1024)#define MAX_VIDEO_SIZE (5 * 256 * 1024)#define FF_ALLOC_EVENT (SDL_USEREVENT)#define FF_REFRESH_EVENT (SDL_USEREVENT + 1)#define FF_QUIT_EVENT (SDL_USEREVENT + 2)#define VIDEO_PICTURE_QUEUE_SIZE 1#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audiotypedef struct PacketQueue {AVPacketList *first_pkt, *last_pkt;int nb_packets;int size;SDL_mutex *mutex;SDL_cond *cond;} PacketQueue;typedef struct VideoPicture {SDL_Window *screen;SDL_Renderer *renderer;SDL_Texture *bmp;AVFrame* rawdata;int width, height; /*source height & width*/int allocated;} VideoPicture;typedef struct VideoState {char filename[1024];AVFormatContext *ic;int videoStream, audioStream;AVStream *audio_st;AVFrame *audio_frame;PacketQueue audioq;unsigned int audio_buf_size;unsigned int audio_buf_index;AVPacket audio_pkt;uint8_t *audio_pkt_data;int audio_pkt_size;uint8_t *audio_buf;DECLARE_ALIGNED(16,uint8_t,audio_buf2) [AVCODEC_MAX_AUDIO_FRAME_SIZE * 4];enum AVSampleFormat audio_src_fmt;enum AVSampleFormat audio_tgt_fmt;int audio_src_channels;int audio_tgt_channels;int64_t audio_src_channel_layout;int64_t audio_tgt_channel_layout;int audio_src_freq;int audio_tgt_freq;struct SwrContext *swr_ctx;AVStream *video_st;PacketQueue videoq;VideoPicture pictq[VIDEO_PICTURE_QUEUE_SIZE];int pictq_size, pictq_rindex, pictq_windex;SDL_mutex *pictq_mutex;SDL_cond *pictq_cond;SDL_Thread *parse_tid;SDL_Thread *audio_tid;SDL_Thread *video_tid;AVIOContext *io_ctx;struct SwsContext *sws_ctx;int quit;} VideoState;VideoState *global_video_state;

android ffmpeg 解码,如何在Android用FFmpeg解码图像相关推荐

  1. android在java下建立模块,Android Studio:如何在Android模块中包含Java模块?

    在Android工作室我有一个Android模块,我们称之为MyAndroid.我还有一个Java模块(不是独立的JAR,而是模块中的完整Java项目),我们称之为MyJava.Android Stu ...

  2. android view gesturedetector,如何在Android中利用 GestureDetector进行手势检测

    如何在Android中利用 GestureDetector进行手势检测 发布时间:2020-11-26 16:15:21 来源:亿速云 阅读:92 作者:Leah 今天就跟大家聊聊有关如何在Andro ...

  3. android编辑配置文件,如何在android studio中修改配置文件

    在使用android studio过程中,你知道怎么手动修改配置文件吗?下面是学习啦小编给大家整理的一些有关在android studio中修改配置文件的方法,希望对大家有帮助! 在android s ...

  4. android 显示进度,progressdialog-如何在Android中显示进度对话框?

    progressdialog-如何在Android中显示进度对话框? 当我单击"登录"按钮时,我想显示ProgressDialog,这需要时间才能移动到另一个页面. 我怎样才能做到 ...

  5. android自动发送dtmf,如何在Android上使用pjsip发送dtmf?

    我正在尝试在voip呼叫期间发送dtmf. 为了做到这一点我使用如何在Android上使用pjsip发送dtmf? mCall.dialDtmf(String.valueOf(dtmf)); MCAL ...

  6. android togglebutton 动画,如何在Android中使用ToggleButton多状态按钮控件

    如何在Android中使用ToggleButton多状态按钮控件 发布时间:2020-12-05 16:53:37 来源:亿速云 阅读:84 作者:Leah 这篇文章给大家介绍如何在Android中使 ...

  7. android radiogroup 添加,如何在android中动态添加textview到radiogroup

    大家好, 我们想动态地在radiogroup旁边添加textview.基于服务响应,我们需要在不使用xml的情况下将标签添加到radiogroup. 在某些情况下基于最长无线电如何在android中动 ...

  8. android listview单击,如何在Android中处理ListView单击

    如何在Android中处理ListView单击 如何在ListView上收听点击事件? 这就是我现在拥有的 ListView list = (ListView)findViewById(R.id.Li ...

  9. UltData for Android for Mac如何在Android上恢复已删除的短信

    如何在Android上恢复已删除的短信 虽然WhatsApp和其他聊天信使接管了Android手机的默认短信,但仍然有一些非常重要的信息是通过短信从公司或朋友那里收到的.这就是这些短信仍然有价值的原因 ...

最新文章

  1. redis灵魂拷问:如何使用stream实现消息队列
  2. maven热部署插件-jetty
  3. python语法手册-Python编程参考手册
  4. linux内核网络协议栈--数据接收流程图(五)
  5. 人脸识别错误代码437是什么意思_lol手游repeat ready check fails什么意思 解决攻略大全...
  6. python 整数输出 d f_如何将数字(10,11,12,13,14,15)分配给Python 3中的字母(A,B,C,D,E,F)?...
  7. bzoj 1024 [SCOI2009]生日快乐
  8. php jmail 乱码,ASP实例:解决Jmail发送邮件标题出现乱码
  9. ubuntu使用pytorch训练出现killed_目标检测之pytorch预训练模型的使用(削减削减网络层,修改参数)fine-tune技巧...
  10. DigitalRealty公司在达拉斯新建一个数据中心
  11. 《中国人工智能学会通讯》——11.24 本文的出发点:模仿人类视觉
  12. python cnn模型_如何在Python中使用预训练的CNN模型
  13. cad2019菜单栏怎么调出来_AutoCAD2019工具栏没了找不到解决方法 AutoCAD2019工具栏怎么调出来...
  14. Ozone Block Chunk文件的layout方式
  15. hdu1541,坑爹的经典树状数组
  16. 520还在画玫瑰?教你用MATLAB画个玫瑰花球
  17. unity3dk帧_Unity K帧动画
  18. linux防火墙删除ip白名单命令,利用CentOS系统IPtables防火墙添加网站IP白名单
  19. 通信感知一体化关键技术(IMT-2030 6G)
  20. 模仿学习(GMM-GMR应用)

热门文章

  1. 富文本编辑器中空格转化为a_熙态农业:富硒鸡蛋有什么营养价值?
  2. 光子 量子 DNA计算机的发展情况,CPU的发展与量子计算机.pdf
  3. 小程序 cover-view 字体_【企商云】2021年,要知道的9个小程序开发流程清单
  4. QT每日一练day1:第一个程序
  5. 阅读java文件_阅读与阅读写文件 - Java空格
  6. mybatis 不等于_MyBatis 第一天
  7. java xml 表达式语言_中级Java开发工程师笔试题
  8. go去掉最后一个字符_Go:字符串操作
  9. 生成随机序列的算法c语言,一个C语言编写的不重复随机序列算法
  10. 修改telnet提示并非_热血传奇:老玩家揭秘!这4个地方都被盛大修改过,第3个80%都想不到...