OrangePi3588Media/include/hw/i_decoder.h
2026-01-16 18:16:25 +08:00

31 lines
593 B
C++

#pragma once
#include <cstddef>
#include <cstdint>
#include <memory>
#include "frame/frame.h"
#include "utils/result.h"
#include "utils/simple_json.h"
namespace rk3588 {
struct DecodePacket {
const uint8_t* data = nullptr;
size_t size = 0;
uint64_t pts = 0;
bool keyframe = false;
};
class IDecoder {
public:
virtual ~IDecoder() = default;
virtual Status Open(const SimpleJson& config) = 0;
virtual Status Send(const DecodePacket& packet) = 0;
virtual Result<std::shared_ptr<Frame>> Receive() = 0;
virtual void Close() = 0;
};
} // namespace rk3588