44 lines
857 B
C
44 lines
857 B
C
#ifndef SOURCE_NODE_MGR_H
|
|
#define SOURCE_NODE_MGR_H
|
|
|
|
#include "jlstream.h"
|
|
#include "media/audio_base.h"
|
|
|
|
enum {
|
|
SRC_NODE_ERR_FILE_END = 1,
|
|
};
|
|
|
|
|
|
struct source_node_plug {
|
|
u16 uuid;
|
|
|
|
u16 frame_size;
|
|
|
|
void *(*init)(void *, struct stream_node *node);
|
|
|
|
int (*read)(void *, u8 *buf, int len);
|
|
|
|
int (*seek)(void *, u32 pos);
|
|
|
|
enum stream_node_state(*get_frame)(void *, struct stream_frame **);
|
|
|
|
int (*ioctl)(void *, int cmd, int arg);
|
|
|
|
void (*release)(void *);
|
|
};
|
|
|
|
|
|
|
|
#define REGISTER_SOURCE_NODE_PLUG(plug) \
|
|
const struct source_node_plug plug sec(.source_node_plug)
|
|
|
|
struct stream_frame *source_plug_get_output_frame(void *, int len);
|
|
|
|
void source_plug_put_output_frame(void *, struct stream_frame *);
|
|
|
|
void source_plug_free_frame(void *, struct stream_frame *);
|
|
|
|
u16 get_source_node_plug_uuid(void *source_node);
|
|
|
|
#endif
|