#ifndef VP9_INTERFACE_H #define VP9_INTERFACE_H #include #include #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