summaryrefslogtreecommitdiff
path: root/cmds/screencap/screencap.cpp
diff options
context:
space:
mode:
author Pechetty Sravani (xWF) <pechetty@google.com> 2025-01-30 21:47:12 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-01-30 21:47:12 -0800
commit5e6a24974f91f99adaf2f5671f0aefa8f60aa07d (patch)
treefebc841faf3b90b1d42ba2ca9f06cf66a2a2b097 /cmds/screencap/screencap.cpp
parente696b74f13875bb5c5fa388c5a198df4eb1e98b9 (diff)
Revert "Improve error message when invalid display id is passed to screencap with -d argument."
This reverts commit e696b74f13875bb5c5fa388c5a198df4eb1e98b9. Reason for revert: <Droidmonitor created revert due to b/393477524.Will be verified through ABTD for standard investigation.> Change-Id: Ib5ed9640d568bbc79648118acd305f63ed2919f5
Diffstat (limited to 'cmds/screencap/screencap.cpp')
-rw-r--r--cmds/screencap/screencap.cpp36
1 files changed, 27 insertions, 9 deletions
diff --git a/cmds/screencap/screencap.cpp b/cmds/screencap/screencap.cpp
index 1626410358a3..d563ad3fd3db 100644
--- a/cmds/screencap/screencap.cpp
+++ b/cmds/screencap/screencap.cpp
@@ -37,9 +37,6 @@
#include <ui/GraphicTypes.h>
#include <ui/PixelFormat.h>
-#include "utils/Errors.h"
-#include "screencap_utils.h"
-
using namespace android;
#define COLORSPACE_UNKNOWN 0
@@ -148,6 +145,24 @@ static status_t notifyMediaScanner(const char* fileName) {
return NO_ERROR;
}
+status_t capture(const DisplayId displayId,
+ const gui::CaptureArgs& captureArgs,
+ ScreenCaptureResults& outResult) {
+ sp<SyncScreenCaptureListener> captureListener = new SyncScreenCaptureListener();
+ ScreenshotClient::captureDisplay(displayId, captureArgs, captureListener);
+
+ ScreenCaptureResults captureResults = captureListener->waitForResults();
+ if (!captureResults.fenceResult.ok()) {
+ fprintf(stderr, "Failed to take screenshot. Status: %d\n",
+ fenceStatus(captureResults.fenceResult));
+ return 1;
+ }
+
+ outResult = captureResults;
+
+ return 0;
+}
+
status_t saveImage(const char* fn, std::optional<AndroidBitmapCompressFormat> format,
const ScreenCaptureResults& captureResults) {
void* base = nullptr;
@@ -412,12 +427,15 @@ int main(int argc, char** argv)
std::vector<ScreenCaptureResults> results;
const size_t numDisplays = displaysToCapture.size();
- for (int i = 0; i < numDisplays; i++) {
+ for (int i=0; i<numDisplays; i++) {
+ ScreenCaptureResults result;
+
// 1. Capture the screen
- auto captureResult = screencap::capture(displaysToCapture[i], captureArgs);
- if (captureResult.error().code() != OK) {
- fprintf(stderr, "%sCapturing failed.\n", captureResult.error().message().c_str());
- return 1;
+ if (const status_t captureStatus =
+ capture(displaysToCapture[i], captureArgs, result) != 0) {
+
+ fprintf(stderr, "Capturing failed.\n");
+ return captureStatus;
}
// 2. Save the capture result as an image.
@@ -435,7 +453,7 @@ int main(int argc, char** argv)
if (!filename.empty()) {
fn = filename.c_str();
}
- if (const status_t saveImageStatus = saveImage(fn, format, captureResult.value()) != 0) {
+ if (const status_t saveImageStatus = saveImage(fn, format, result) != 0) {
fprintf(stderr, "Saving image failed.\n");
return saveImageStatus;
}