43 lines
903 B
C
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
|