123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- #ifndef __VIDEODEV_IMP_H__
- #define __VIDEODEV_IMP_H__
- #include <pjmedia-videodev/videodev.h>
- typedef struct pjmedia_vid_dev_factory_op
- {
-
- pj_status_t (*init)(pjmedia_vid_dev_factory *f);
-
- pj_status_t (*destroy)(pjmedia_vid_dev_factory *f);
-
- unsigned (*get_dev_count)(pjmedia_vid_dev_factory *f);
-
- pj_status_t (*get_dev_info)(pjmedia_vid_dev_factory *f,
- unsigned index,
- pjmedia_vid_dev_info *info);
-
- pj_status_t (*default_param)(pj_pool_t *pool,
- pjmedia_vid_dev_factory *f,
- unsigned index,
- pjmedia_vid_dev_param *param);
-
- pj_status_t (*create_stream)(pjmedia_vid_dev_factory *f,
- pjmedia_vid_dev_param *param,
- const pjmedia_vid_dev_cb *cb,
- void *user_data,
- pjmedia_vid_dev_stream **p_vid_strm);
-
- pj_status_t (*refresh)(pjmedia_vid_dev_factory *f);
- } pjmedia_vid_dev_factory_op;
- struct pjmedia_vid_dev_factory
- {
-
- struct {
-
- unsigned drv_idx;
- } sys;
-
- pjmedia_vid_dev_factory_op *op;
- };
- typedef struct pjmedia_vid_dev_stream_op
- {
-
- pj_status_t (*get_param)(pjmedia_vid_dev_stream *strm,
- pjmedia_vid_dev_param *param);
-
- pj_status_t (*get_cap)(pjmedia_vid_dev_stream *strm,
- pjmedia_vid_dev_cap cap,
- void *value);
-
- pj_status_t (*set_cap)(pjmedia_vid_dev_stream *strm,
- pjmedia_vid_dev_cap cap,
- const void *value);
-
- pj_status_t (*start)(pjmedia_vid_dev_stream *strm);
-
- pj_status_t (*get_frame)(pjmedia_vid_dev_stream *strm,
- pjmedia_frame *frame);
-
- pj_status_t (*put_frame)(pjmedia_vid_dev_stream *strm,
- const pjmedia_frame *frame);
-
- pj_status_t (*stop)(pjmedia_vid_dev_stream *strm);
-
- pj_status_t (*destroy)(pjmedia_vid_dev_stream *strm);
- } pjmedia_vid_dev_stream_op;
- struct pjmedia_vid_dev_stream
- {
-
- struct {
-
- unsigned drv_idx;
-
- pj_bool_t is_running;
- } sys;
-
- pjmedia_vid_dev_stream_op *op;
- };
- PJ_DECL(pj_status_t)
- pjmedia_vid_dev_get_local_index(pjmedia_vid_dev_index id,
- pjmedia_vid_dev_factory **p_f,
- unsigned *p_local_index);
- PJ_DEF(pj_status_t)
- pjmedia_vid_dev_get_global_index(const pjmedia_vid_dev_factory *f,
- unsigned local_idx,
- pjmedia_vid_dev_index *pid);
- #endif
|