Skip to content

Commit 49e3eba

Browse files
committed
Consolidate frame_changed signal into CameraFeed
1 parent a3b42d8 commit 49e3eba

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

modules/camera/camera_android.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -368,8 +368,6 @@ void CameraFeedAndroid::onImage(void *context, AImageReader *p_reader) {
368368

369369
// Release image
370370
AImage_delete(image);
371-
372-
feed->emit_signal(SNAME("frame_changed"));
373371
}
374372

375373
void CameraFeedAndroid::onSessionReady(void *context, ACameraCaptureSession *session) {

modules/camera/camera_feed_linux.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,6 @@ void CameraFeedLinux::_read_frame() {
204204
if (ioctl(file_descriptor, VIDIOC_QBUF, &buffer) == -1) {
205205
print_error(vformat("ioctl(VIDIOC_QBUF) error: %d.", errno));
206206
}
207-
208-
emit_signal(SNAME("frame_changed"));
209207
}
210208

211209
void CameraFeedLinux::_stop_capturing() {

servers/camera/camera_feed.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,13 @@ void CameraFeed::set_rgb_image(const Ref<Image> &p_rgb_img) {
196196
RID new_texture = RenderingServer::get_singleton()->texture_2d_create(p_rgb_img);
197197
RenderingServer::get_singleton()->texture_replace(texture[CameraServer::FEED_RGBA_IMAGE], new_texture);
198198

199-
emit_signal(SNAME("format_changed"));
199+
emit_signal(format_changed_signal_name);
200200
} else {
201201
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_RGBA_IMAGE], p_rgb_img);
202202
}
203203

204204
datatype = CameraFeed::FEED_RGB;
205+
emit_signal(frame_changed_signal_name);
205206
}
206207
}
207208

@@ -219,12 +220,13 @@ void CameraFeed::set_ycbcr_image(const Ref<Image> &p_ycbcr_img) {
219220
RID new_texture = RenderingServer::get_singleton()->texture_2d_create(p_ycbcr_img);
220221
RenderingServer::get_singleton()->texture_replace(texture[CameraServer::FEED_RGBA_IMAGE], new_texture);
221222

222-
emit_signal(SNAME("format_changed"));
223+
emit_signal(format_changed_signal_name);
223224
} else {
224225
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_RGBA_IMAGE], p_ycbcr_img);
225226
}
226227

227228
datatype = CameraFeed::FEED_YCBCR;
229+
emit_signal(frame_changed_signal_name);
228230
}
229231
}
230232

@@ -252,13 +254,14 @@ void CameraFeed::set_ycbcr_images(const Ref<Image> &p_y_img, const Ref<Image> &p
252254
RenderingServer::get_singleton()->texture_replace(texture[CameraServer::FEED_CBCR_IMAGE], new_texture);
253255
}
254256

255-
emit_signal(SNAME("format_changed"));
257+
emit_signal(format_changed_signal_name);
256258
} else {
257259
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_Y_IMAGE], p_y_img);
258260
RenderingServer::get_singleton()->texture_2d_update(texture[CameraServer::FEED_CBCR_IMAGE], p_cbcr_img);
259261
}
260262

261263
datatype = CameraFeed::FEED_YCBCR_SEP;
264+
emit_signal(frame_changed_signal_name);
262265
}
263266
}
264267

@@ -273,6 +276,7 @@ void CameraFeed::set_external(int p_width, int p_height) {
273276
}
274277

275278
datatype = CameraFeed::FEED_EXTERNAL;
279+
emit_signal(frame_changed_signal_name);
276280
}
277281

278282
bool CameraFeed::activate_feed() {

servers/camera/camera_feed.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ class CameraFeed : public RefCounted {
5959

6060
private:
6161
int id; // unique id for this, for internal use in case feeds are removed
62+
const StringName format_changed_signal_name = "format_changed";
63+
const StringName frame_changed_signal_name = "frame_changed";
6264

6365
protected:
6466
struct FeedFormat {

0 commit comments

Comments
 (0)