Files
video-orchestra/shared/interface/vp9_interface.h

43 lines
903 B
C

#ifndef VP9_INTERFACE_H
#define VP9_INTERFACE_H
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
// Maximum number of concurrent VP9 streams
#define MAX_VP9_STREAMS 3
// VP9 decoder initialization
bool vp9_initialize(int width, int height);
// Decode a VP9 frame for the specified stream
bool vp9_decode_frame(const uint8_t* data, size_t data_size, int stream_id);
// Get the OpenGL texture ID for the decoded frame
uint32_t vp9_get_texture_id(int stream_id);
// Check if hardware decoding is available
bool vp9_is_hardware_supported();
// Get decoder status information
typedef struct {
bool is_initialized;
bool hardware_supported;
int active_streams;
int decoded_frames[MAX_VP9_STREAMS];
} vp9_status_t;
vp9_status_t vp9_get_status();
// Release all decoder resources
void vp9_release();
#ifdef __cplusplus
}
#endif
#endif // VP9_INTERFACE_H