#include "SoftwareDecoderWrapper.h"
#include "rendering/video/SoftwareDecoderWrapper.h"
namespace pag {
std::unique_ptr<VideoDecoder> OHOSSoftwareDecoderWrapper::Wrap(
std::shared_ptr<OHOSVideoDecoder> ohosVideoDecoder) {
if (ohosVideoDecoder == nullptr) {
return nullptr;
}
auto decoder = new OHOSSoftwareDecoderWrapper(ohosVideoDecoder);
return std::unique_ptr<VideoDecoder>(decoder);
}
OHOSSoftwareDecoderWrapper::OHOSSoftwareDecoderWrapper(
std::shared_ptr<OHOSVideoDecoder> ohosVideoDecoder)
: ohosVideoDecoder(std::move(ohosVideoDecoder)) {
}
OHOSSoftwareDecoderWrapper::~OHOSSoftwareDecoderWrapper() {
}
DecodingResult OHOSSoftwareDecoderWrapper::onSendBytes(void* bytes, size_t length, int64_t time) {
return ohosVideoDecoder->onSendBytes(bytes, length, time);
}
DecodingResult OHOSSoftwareDecoderWrapper::onDecodeFrame() {
return ohosVideoDecoder->onDecodeFrame();
}
DecodingResult OHOSSoftwareDecoderWrapper::onEndOfStream() {
return ohosVideoDecoder->onEndOfStream();
}
void OHOSSoftwareDecoderWrapper::onFlush() {
ohosVideoDecoder->onFlush();
}
std::shared_ptr<tgfx::ImageBuffer> OHOSSoftwareDecoderWrapper::onRenderFrame() {
return ohosVideoDecoder->onRenderFrame();
}
int64_t OHOSSoftwareDecoderWrapper::presentationTime() {
return ohosVideoDecoder->presentationTime();
}
}