123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- class NvBuffer
- {
- public:
-
- typedef struct
- {
- uint32_t width;
- uint32_t height;
- uint32_t bytesperpixel;
- uint32_t stride;
- uint32_t sizeimage;
- } NvBufferPlaneFormat;
-
- typedef struct
- {
- NvBufferPlaneFormat fmt;
- unsigned char *data;
- uint32_t bytesused;
- int fd;
- uint32_t mem_offset;
- uint32_t length;
- } NvBufferPlane;
-
- NvBuffer(enum v4l2_buf_type buf_type, enum v4l2_memory memory_type,
- uint32_t n_planes, NvBufferPlaneFormat *fmt, uint32_t index);
-
- NvBuffer(uint32_t pixfmt, uint32_t width, uint32_t height, uint32_t index);
-
- NvBuffer(uint32_t size, uint32_t index);
-
- ~NvBuffer();
-
- int map();
-
- void unmap();
-
- int allocateMemory();
-
- void deallocateMemory();
-
- int ref();
-
- int unref();
- const enum v4l2_buf_type buf_type;
- const enum v4l2_memory memory_type;
- const uint32_t index;
- uint32_t n_planes;
- NvBufferPlane planes[MAX_PLANES];
-
- static int fill_buffer_plane_format(uint32_t *num_planes,
- NvBuffer::NvBufferPlaneFormat *planefmts,
- uint32_t width, uint32_t height, uint32_t raw_pixfmt);
- private:
- uint32_t ref_count;
- pthread_mutex_t ref_lock;
- bool mapped;
- bool allocated;
- NvBuffer *shared_buffer;
-
- NvBuffer(const NvBuffer& that);
-
- void operator=(NvBuffer const&);
- friend class NvV4l2ElementPlane;
- };
- /** @} */
- #endif
|