android ffmpeg 解码,如何在Android用FFmpeg解码图像

5a4daa086f89590c67f07fa7fec52918.png

白猪掌柜的

创建一个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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值