如何在Android安装解码,如何在Android用FFmpeg解码图像

8391b720bdc66fc1d5c320a49539aca3.png

动漫人物

 创建一个VideoPicture结构体用来保存解码出来的图像。12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091/*  * 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/includebavcodec/avcodec.h" #include "../ffmpeg/includebavformat/avformat.h" #include "../ffmpeg/includebavutil/pixfmt.h" #include "../ffmpeg/includebswscale/swscale.h" #include "../ffmpeg/includebswresample/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 audio       typedef 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; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值