mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
sources: fix GetSourceImage method
This commit is contained in:
parent
79ddb43ac3
commit
fe00f31147
@ -116,7 +116,7 @@ class WSRequestHandler : public QObject {
|
|||||||
static HandlerResponse HandleGetSourceTypesList(WSRequestHandler* req);
|
static HandlerResponse HandleGetSourceTypesList(WSRequestHandler* req);
|
||||||
static HandlerResponse HandleGetSourceSettings(WSRequestHandler* req);
|
static HandlerResponse HandleGetSourceSettings(WSRequestHandler* req);
|
||||||
static HandlerResponse HandleSetSourceSettings(WSRequestHandler* req);
|
static HandlerResponse HandleSetSourceSettings(WSRequestHandler* req);
|
||||||
static void HandleGetSourceImage(WSRequestHandler* req);
|
static HandlerResponse HandleGetSourceImage(WSRequestHandler* req);
|
||||||
|
|
||||||
static HandlerResponse HandleGetSourceFilters(WSRequestHandler* req);
|
static HandlerResponse HandleGetSourceFilters(WSRequestHandler* req);
|
||||||
static HandlerResponse HandleAddFilterToSource(WSRequestHandler* req);
|
static HandlerResponse HandleAddFilterToSource(WSRequestHandler* req);
|
||||||
|
@ -1336,17 +1336,15 @@ HandlerResponse WSRequestHandler::HandleSetSourceFilterSettings(WSRequestHandler
|
|||||||
return req->SendOKResponse();
|
return req->SendOKResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WSRequestHandler::HandleGetSourceImage(WSRequestHandler* req) {
|
HandlerResponse WSRequestHandler::HandleGetSourceImage(WSRequestHandler* req) {
|
||||||
if (!req->hasField("sourceName")) {
|
if (!req->hasField("sourceName")) {
|
||||||
req->SendErrorResponse("missing request parameters");
|
return req->SendErrorResponse("missing request parameters");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* sourceName = obs_data_get_string(req->data, "sourceName");
|
const char* sourceName = obs_data_get_string(req->data, "sourceName");
|
||||||
OBSSourceAutoRelease source = obs_get_source_by_name(sourceName);
|
OBSSourceAutoRelease source = obs_get_source_by_name(sourceName);
|
||||||
if (!source) {
|
if (!source) {
|
||||||
req->SendErrorResponse("specified source doesn't exist");
|
return req->SendErrorResponse("specified source doesn't exist");;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint32_t imgWidth = obs_source_get_base_width(source);
|
const uint32_t imgWidth = obs_source_get_base_width(source);
|
||||||
@ -1392,7 +1390,10 @@ void WSRequestHandler::HandleGetSourceImage(WSRequestHandler* req) {
|
|||||||
|
|
||||||
obs_leave_graphics();
|
obs_leave_graphics();
|
||||||
|
|
||||||
if (renderSuccess) {
|
if (!renderSuccess) {
|
||||||
|
return req->SendErrorResponse("Source render failed.");
|
||||||
|
}
|
||||||
|
|
||||||
QByteArray encodedImgBytes;
|
QByteArray encodedImgBytes;
|
||||||
QBuffer buffer(&encodedImgBytes);
|
QBuffer buffer(&encodedImgBytes);
|
||||||
buffer.open(QBuffer::WriteOnly);
|
buffer.open(QBuffer::WriteOnly);
|
||||||
@ -1405,8 +1406,5 @@ void WSRequestHandler::HandleGetSourceImage(WSRequestHandler* req) {
|
|||||||
OBSDataAutoRelease response = obs_data_create();
|
OBSDataAutoRelease response = obs_data_create();
|
||||||
obs_data_set_string(response, "sourceName", obs_source_get_name(source));
|
obs_data_set_string(response, "sourceName", obs_source_get_name(source));
|
||||||
obs_data_set_string(response, "img", imgBase64.toUtf8().constData());
|
obs_data_set_string(response, "img", imgBase64.toUtf8().constData());
|
||||||
req->SendOKResponse(response);
|
return req->SendOKResponse(response);
|
||||||
} else {
|
|
||||||
req->SendErrorResponse("Source render failed.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user