You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-17 14:11:06 +00:00
Consolidate frame_changed signal into CameraFeed
This commit is contained in:
@@ -368,8 +368,6 @@ void CameraFeedAndroid::onImage(void *context, AImageReader *p_reader) {
|
|||||||
|
|
||||||
// Release image
|
// Release image
|
||||||
AImage_delete(image);
|
AImage_delete(image);
|
||||||
|
|
||||||
feed->emit_signal(SNAME("frame_changed"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CameraFeedAndroid::onSessionReady(void *context, ACameraCaptureSession *session) {
|
void CameraFeedAndroid::onSessionReady(void *context, ACameraCaptureSession *session) {
|
||||||
|
|||||||
@@ -204,8 +204,6 @@ void CameraFeedLinux::_read_frame() {
|
|||||||
if (ioctl(file_descriptor, VIDIOC_QBUF, &buffer) == -1) {
|
if (ioctl(file_descriptor, VIDIOC_QBUF, &buffer) == -1) {
|
||||||
print_error(vformat("ioctl(VIDIOC_QBUF) error: %d.", errno));
|
print_error(vformat("ioctl(VIDIOC_QBUF) error: %d.", errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
emit_signal(SNAME("frame_changed"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CameraFeedLinux::_stop_capturing() {
|
void CameraFeedLinux::_stop_capturing() {
|
||||||
|
|||||||
@@ -196,12 +196,13 @@ void CameraFeed::set_rgb_image(const Ref<Image> &p_rgb_img) {
|
|||||||
RID new_texture = RenderingServer::get_singleton()->texture_2d_create(p_rgb_img);
|
RID new_texture = RenderingServer::get_singleton()->texture_2d_create(p_rgb_img);
|
||||||
RenderingServer::get_singleton()->texture_replace(texture[CameraServer::FEED_RGBA_IMAGE], new_texture);
|
RenderingServer::get_singleton()->texture_replace(texture[CameraServer::FEED_RGBA_IMAGE], new_texture);
|
||||||
|
|
||||||
emit_signal(SNAME("format_changed"));
|
emit_signal(format_changed_signal_name);
|
||||||
} else {
|
} else {
|
||||||
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_RGBA_IMAGE], p_rgb_img);
|
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_RGBA_IMAGE], p_rgb_img);
|
||||||
}
|
}
|
||||||
|
|
||||||
datatype = CameraFeed::FEED_RGB;
|
datatype = CameraFeed::FEED_RGB;
|
||||||
|
emit_signal(frame_changed_signal_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,12 +220,13 @@ void CameraFeed::set_ycbcr_image(const Ref<Image> &p_ycbcr_img) {
|
|||||||
RID new_texture = RenderingServer::get_singleton()->texture_2d_create(p_ycbcr_img);
|
RID new_texture = RenderingServer::get_singleton()->texture_2d_create(p_ycbcr_img);
|
||||||
RenderingServer::get_singleton()->texture_replace(texture[CameraServer::FEED_RGBA_IMAGE], new_texture);
|
RenderingServer::get_singleton()->texture_replace(texture[CameraServer::FEED_RGBA_IMAGE], new_texture);
|
||||||
|
|
||||||
emit_signal(SNAME("format_changed"));
|
emit_signal(format_changed_signal_name);
|
||||||
} else {
|
} else {
|
||||||
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_RGBA_IMAGE], p_ycbcr_img);
|
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_RGBA_IMAGE], p_ycbcr_img);
|
||||||
}
|
}
|
||||||
|
|
||||||
datatype = CameraFeed::FEED_YCBCR;
|
datatype = CameraFeed::FEED_YCBCR;
|
||||||
|
emit_signal(frame_changed_signal_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,13 +254,14 @@ void CameraFeed::set_ycbcr_images(const Ref<Image> &p_y_img, const Ref<Image> &p
|
|||||||
RenderingServer::get_singleton()->texture_replace(texture[CameraServer::FEED_CBCR_IMAGE], new_texture);
|
RenderingServer::get_singleton()->texture_replace(texture[CameraServer::FEED_CBCR_IMAGE], new_texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
emit_signal(SNAME("format_changed"));
|
emit_signal(format_changed_signal_name);
|
||||||
} else {
|
} else {
|
||||||
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_Y_IMAGE], p_y_img);
|
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_Y_IMAGE], p_y_img);
|
||||||
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_CBCR_IMAGE], p_cbcr_img);
|
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_CBCR_IMAGE], p_cbcr_img);
|
||||||
}
|
}
|
||||||
|
|
||||||
datatype = CameraFeed::FEED_YCBCR_SEP;
|
datatype = CameraFeed::FEED_YCBCR_SEP;
|
||||||
|
emit_signal(frame_changed_signal_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,6 +276,7 @@ void CameraFeed::set_external(int p_width, int p_height) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
datatype = CameraFeed::FEED_EXTERNAL;
|
datatype = CameraFeed::FEED_EXTERNAL;
|
||||||
|
emit_signal(frame_changed_signal_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CameraFeed::activate_feed() {
|
bool CameraFeed::activate_feed() {
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
int id; // unique id for this, for internal use in case feeds are removed
|
int id; // unique id for this, for internal use in case feeds are removed
|
||||||
|
const StringName format_changed_signal_name = "format_changed";
|
||||||
|
const StringName frame_changed_signal_name = "frame_changed";
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
struct FeedFormat {
|
struct FeedFormat {
|
||||||
|
|||||||
Reference in New Issue
Block a user