18 #include "scanner/api/kernel.h" 19 #include "scanner/engine/metadata.h" 20 #include "scanner/util/common.h" 21 #include "scanner/util/profiler.h" 28 enum class VideoEncoderType {
37 i64 keyframe_distance = -1;
44 static std::vector<VideoEncoderType> get_supported_encoder_types();
46 static bool has_encoder_type(VideoEncoderType type);
49 i32 num_devices, VideoEncoderType type);
53 virtual void configure(
const FrameInfo& metadata,
56 virtual bool feed(
const u8* frame_buffer,
size_t frame_size) = 0;
58 virtual bool flush() = 0;
60 virtual bool get_packet(u8* decoded_buffer,
size_t decoded_size,
61 size_t& actual_packet_size) = 0;
63 virtual int decoded_packets_buffered() = 0;
65 virtual void wait_until_packets_copied() = 0;
67 void set_profiler(
Profiler* profiler);
Definition: video_encoder.h:34
Definition: profiler.h:40
Definition: database.cpp:36
VideoEncoder.
Definition: video_encoder.h:42
FrameInfo.
Definition: frame.h:34