gst: libcamerapad: Allow storing a pool

This adds get/set helper to store a pool on the pad.

Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Nicolas Dufresne 2020-01-25 23:06:14 -05:00 committed by Laurent Pinchart
parent bde275408c
commit a801f5e4f6
2 changed files with 24 additions and 0 deletions

View file

@ -17,6 +17,7 @@ using namespace libcamera;
struct _GstLibcameraPad {
GstPad parent;
StreamRole role;
GstLibcameraPool *pool;
};
enum {
@ -108,3 +109,20 @@ gst_libcamera_pad_get_role(GstPad *pad)
GLibLocker lock(GST_OBJECT(self));
return self->role;
}
GstLibcameraPool *
gst_libcamera_pad_get_pool(GstPad *pad)
{
auto *self = GST_LIBCAMERA_PAD(pad);
return self->pool;
}
void
gst_libcamera_pad_set_pool(GstPad *pad, GstLibcameraPool *pool)
{
auto *self = GST_LIBCAMERA_PAD(pad);
if (self->pool)
g_object_unref(self->pool);
self->pool = pool;
}

View file

@ -9,6 +9,8 @@
#ifndef __GST_LIBCAMERA_PAD_H__
#define __GST_LIBCAMERA_PAD_H__
#include "gstlibcamerapool.h"
#include <gst/gst.h>
#include <libcamera/stream.h>
@ -18,4 +20,8 @@ G_DECLARE_FINAL_TYPE(GstLibcameraPad, gst_libcamera_pad, GST_LIBCAMERA, PAD, Gst
libcamera::StreamRole gst_libcamera_pad_get_role(GstPad *pad);
GstLibcameraPool *gst_libcamera_pad_get_pool(GstPad *pad);
void gst_libcamera_pad_set_pool(GstPad *pad, GstLibcameraPool *pool);
#endif /* __GST_LIBCAMERA_PAD_H__ */