#endif
#include "gstwpevideosrc.h"
+#include "gstwpe-private.h"
#include <gst/gl/gl.h>
#include <gst/gl/egl/gstglmemoryegl.h>
#include <gst/gl/wayland/gstgldisplay_wayland.h>
gint64 n_frames; /* total frames sent */
WPEView *view;
+ const struct wpe_audio_receiver *audio_receiver;
+ gpointer audio_receiver_data;
GMutex lock;
};
if (created_view) {
src->n_frames = 0;
+ if (src->audio_receiver) {
+ src->view->registerAudioReceiver(src->audio_receiver, src->audio_receiver_data);
+ src->audio_receiver = NULL,
+ src->audio_receiver_data = NULL;
+ }
}
WPE_UNLOCK (src);
return TRUE;
static_cast < GSignalFlags > (G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
G_CALLBACK (gst_wpe_video_src_load_bytes), NULL, NULL, NULL,
G_TYPE_NONE, 1, G_TYPE_BYTES);
+}
+
+void
+gst_wpe_video_src_register_audio_receiver(GstElement* video_src, const struct wpe_audio_receiver* receiver, gpointer user_data)
+{
+ GstWpeVideoSrc* src = GST_WPE_VIDEO_SOURCE(video_src);
+
+ if (!src->view) {
+ src->audio_receiver = receiver;
+ src->audio_receiver_data = user_data;
+ return;
+ }
+ src->view->registerAudioReceiver(receiver, user_data);
}
\ No newline at end of file