代码拉取完成,页面将自动刷新
//
// Created by curi on 17-6-28.
//
#ifndef OPENCVIDEO_MASTER_H264DECODER_H
#define OPENCVIDEO_MASTER_H264DECODER_H
//#define __STDC_CONSTANT_MACROS
#include <stdio.h>
#include <unistd.h>
// Opencv
#include <opencv/cv.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/objdetect.hpp>
extern "C" {
//#include "libavutil/avutil.h"
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
//新版里的图像转换结构需要引入的头文件
#include "libswscale/swscale.h"
};
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1)
#define av_frame_alloc avcodec_alloc_frame
#endif
class H264Decoder {
public :
H264Decoder();
// ~H264Decoder(); TODO
void init();
void decode(unsigned char *inputbuf, size_t size);
void play();
cv::Mat getMat();
private:
const AVCodec *codec;
AVCodecContext *c = nullptr;
int frame_count;
AVFrame *frame;
AVPacket avpkt;
AVFrame *pFrameBGR;
int BGRsize;
uint8_t *out_buffer = nullptr;
struct SwsContext *img_convert_ctx;
cv::Mat pCvMat;
bool matReady;
};
#endif //OPENCVIDEO_MASTER_H264DECODER_H
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。