/* * video_decoder.h * * Created on: 2022年1月15日 * Author: pengzc */ #ifndef JNI_CALL_VIDEO_DECODER_H_ #define JNI_CALL_VIDEO_DECODER_H_ #include namespace voip { class H264Decoder { public: struct ImageData { int width; int height; uint8_t* data[3]; }; public: H264Decoder(); virtual ~H264Decoder(); int Initialize(); /** * 解码H264流 * 如果成功解出一帧图像,则返回0,图像数据保存到img * * 每次调用必须传入完整的一个nal */ int DecodeFrame(uint8_t* nalu, int nalu_len, ImageData* img); /** * 将图像转为NV21格式 */ int ToNV21(const ImageData& img, uint8_t* nv21); private: class Impl; Impl* impl_; }; } /* namespace base */ #endif /* JNI_CALL_VIDEO_DECODER_H_ */