commit 0e8d216b6ee7ae9ff406dc1d001e4f06e3ff94f9
parent b9ccd5f6f0f980387771d6fbf348d86da78bd493
Author: Andreas Pehrson <apehrson@mozilla.com>
Date: Tue, 11 Nov 2025 08:20:24 +0000
Bug 1771789 - Clean up type mismatches and unused things in CamerasParent. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D266401
Diffstat:
2 files changed, 44 insertions(+), 60 deletions(-)
diff --git a/dom/media/systemservices/CamerasParent.cpp b/dom/media/systemservices/CamerasParent.cpp
@@ -57,8 +57,8 @@ using dom::VideoResizeModeEnum;
using media::ShutdownBlockingTicket;
namespace camera {
-MOZ_RUNINIT std::map<uint32_t, const char*> sDeviceUniqueIDs;
-MOZ_RUNINIT std::map<uint32_t, webrtc::VideoCaptureCapability>
+MOZ_RUNINIT std::map<int, const char*> sDeviceUniqueIDs;
+MOZ_RUNINIT std::map<int, webrtc::VideoCaptureCapability>
sAllRequestedCapabilities;
uint32_t ResolutionFeasibilityDistance(int32_t candidate, int32_t requested) {
@@ -252,7 +252,7 @@ void CamerasParent::OnDeviceChange() {
class DeliverFrameRunnable : public mozilla::Runnable {
public:
DeliverFrameRunnable(CamerasParent* aParent, CaptureEngine aEngine,
- uint32_t aStreamId, const TrackingId& aTrackingId,
+ int aStreamId, const TrackingId& aTrackingId,
const webrtc::VideoFrame& aFrame,
const VideoFrameProperties& aProperties)
: Runnable("camera::DeliverFrameRunnable"),
@@ -260,8 +260,7 @@ class DeliverFrameRunnable : public mozilla::Runnable {
mCapEngine(aEngine),
mStreamId(aStreamId),
mTrackingId(aTrackingId),
- mProperties(aProperties),
- mResult(0) {
+ mProperties(aProperties) {
// No ShmemBuffer (of the right size) was available, so make an
// extra buffer here. We have no idea when we are going to run and
// it will be potentially long after the webrtc frame callback has
@@ -278,7 +277,7 @@ class DeliverFrameRunnable : public mozilla::Runnable {
}
DeliverFrameRunnable(CamerasParent* aParent, CaptureEngine aEngine,
- uint32_t aStreamId, const TrackingId& aTrackingId,
+ int aStreamId, const TrackingId& aTrackingId,
ShmemBuffer aBuffer, VideoFrameProperties& aProperties)
: Runnable("camera::DeliverFrameRunnable"),
mParent(aParent),
@@ -286,8 +285,7 @@ class DeliverFrameRunnable : public mozilla::Runnable {
mStreamId(aStreamId),
mTrackingId(aTrackingId),
mBuffer(std::move(aBuffer)),
- mProperties(aProperties),
- mResult(0) {};
+ mProperties(aProperties) {}
NS_IMETHOD Run() override {
// runs on BackgroundEventTarget
@@ -295,34 +293,25 @@ class DeliverFrameRunnable : public mozilla::Runnable {
mParent->mPBackgroundEventTarget);
if (mParent->IsShuttingDown()) {
// Communication channel is being torn down
- mResult = 0;
return NS_OK;
}
- if (!mParent->DeliverFrameOverIPC(mCapEngine, mStreamId, mTrackingId,
- std::move(mBuffer),
- mAlternateBuffer.get(), mProperties)) {
- mResult = -1;
- } else {
- mResult = 0;
- }
+ mParent->DeliverFrameOverIPC(mCapEngine, mStreamId, mTrackingId,
+ std::move(mBuffer), mAlternateBuffer.get(),
+ mProperties);
return NS_OK;
}
- int GetResult() { return mResult; }
-
private:
const RefPtr<CamerasParent> mParent;
const CaptureEngine mCapEngine;
- const uint32_t mStreamId;
+ const int mStreamId;
const TrackingId mTrackingId;
ShmemBuffer mBuffer;
UniquePtr<unsigned char[]> mAlternateBuffer;
const VideoFrameProperties mProperties;
- int mResult;
};
-int CamerasParent::DeliverFrameOverIPC(CaptureEngine aCapEngine,
- uint32_t aStreamId,
+int CamerasParent::DeliverFrameOverIPC(CaptureEngine aCapEngine, int aStreamId,
const TrackingId& aTrackingId,
ShmemBuffer aBuffer,
unsigned char* aAltBuffer,
@@ -672,34 +661,33 @@ ipc::IPCResult CamerasParent::RecvGetCaptureCapability(
aIndex);
using Promise = MozPromise<webrtc::VideoCaptureCapability, int, true>;
- InvokeAsync(mVideoCaptureThread, __func__,
- [this, self = RefPtr(this), id = nsCString(aUniqueId), aCapEngine,
- aIndex] {
- webrtc::VideoCaptureCapability webrtcCaps;
- int error = -1;
- if (auto devInfo = GetDeviceInfo(aCapEngine)) {
- error = devInfo->GetCapability(id.get(), aIndex, webrtcCaps);
- }
+ InvokeAsync(
+ mVideoCaptureThread, __func__,
+ [this, self = RefPtr(this), id = nsCString(aUniqueId), aCapEngine,
+ aIndex] {
+ webrtc::VideoCaptureCapability webrtcCaps;
+ int error = -1;
+ if (auto devInfo = GetDeviceInfo(aCapEngine)) {
+ error = devInfo->GetCapability(id.get(), aIndex, webrtcCaps);
+ }
- if (!error && aCapEngine == CameraEngine) {
- auto iter = mAllCandidateCapabilities.find(id);
- if (iter == mAllCandidateCapabilities.end()) {
- std::map<uint32_t, webrtc::VideoCaptureCapability>
- candidateCapabilities;
- candidateCapabilities.emplace(aIndex, webrtcCaps);
- mAllCandidateCapabilities.emplace(id,
- candidateCapabilities);
- } else {
- (iter->second).emplace(aIndex, webrtcCaps);
- }
- }
- if (error) {
- return Promise::CreateAndReject(
- error, "CamerasParent::RecvGetCaptureCapability");
- }
- return Promise::CreateAndResolve(
- webrtcCaps, "CamerasParent::RecvGetCaptureCapability");
- })
+ if (!error && aCapEngine == CameraEngine) {
+ auto iter = mAllCandidateCapabilities.find(id);
+ if (iter == mAllCandidateCapabilities.end()) {
+ std::map<int, webrtc::VideoCaptureCapability> candidateCapabilities;
+ candidateCapabilities.emplace(aIndex, webrtcCaps);
+ mAllCandidateCapabilities.emplace(id, candidateCapabilities);
+ } else {
+ (iter->second).emplace(aIndex, webrtcCaps);
+ }
+ }
+ if (error) {
+ return Promise::CreateAndReject(
+ error, "CamerasParent::RecvGetCaptureCapability");
+ }
+ return Promise::CreateAndResolve(
+ webrtcCaps, "CamerasParent::RecvGetCaptureCapability");
+ })
->Then(
mPBackgroundEventTarget, __func__,
[this, self = RefPtr(this)](Promise::ResolveOrRejectValue&& aValue) {
@@ -1090,7 +1078,7 @@ ipc::IPCResult CamerasParent::RecvStartCapture(
CallbackHelper* cbh = nullptr;
for (auto& cb : mCallbacks) {
if (cb->mCapEngine == aCapEngine &&
- cb->mStreamId == (uint32_t)aCaptureId) {
+ cb->mStreamId == aCaptureId) {
cbh = cb.get();
break;
}
@@ -1202,7 +1190,7 @@ void CamerasParent::StopCapture(const CaptureEngine& aCapEngine,
// we're removing elements, iterate backwards
for (size_t i = mCallbacks.Length(); i > 0; i--) {
if (mCallbacks[i - 1]->mCapEngine == aCapEngine &&
- mCallbacks[i - 1]->mStreamId == (uint32_t)aCaptureId) {
+ mCallbacks[i - 1]->mStreamId == aCaptureId) {
CallbackHelper* cbh = mCallbacks[i - 1].get();
engine->WithEntry(aCaptureId, [cbh, &aCaptureId](
VideoEngine::CaptureEntry& cap) {
diff --git a/dom/media/systemservices/CamerasParent.h b/dom/media/systemservices/CamerasParent.h
@@ -30,13 +30,12 @@ class VideoEngine;
class CallbackHelper : public webrtc::VideoSinkInterface<webrtc::VideoFrame> {
public:
- CallbackHelper(CaptureEngine aCapEng, uint32_t aStreamId,
- CamerasParent* aParent)
+ CallbackHelper(CaptureEngine aCapEng, int aStreamId, CamerasParent* aParent)
: mCapEngine(aCapEng),
mStreamId(aStreamId),
mTrackingId(CaptureEngineToTrackingSourceStr(aCapEng), aStreamId),
mParent(aParent),
- mConfiguration("CallbackHelper::mConfiguration") {};
+ mConfiguration("CallbackHelper::mConfiguration") {}
void SetConfiguration(const webrtc::VideoCaptureCapability& aCapability,
const NormalizedConstraints& aConstraints,
@@ -56,7 +55,7 @@ class CallbackHelper : public webrtc::VideoSinkInterface<webrtc::VideoFrame> {
dom::VideoResizeModeEnum mResizeMode{};
};
const CaptureEngine mCapEngine;
- const uint32_t mStreamId;
+ const int mStreamId;
const TrackingId mTrackingId;
CamerasParent* const mParent;
MediaEventListener mCaptureEndedListener;
@@ -139,7 +138,7 @@ class CamerasParent final : public PCamerasParent {
ShmemBuffer GetBuffer(size_t aSize);
// helper to forward to the PBackground thread
- int DeliverFrameOverIPC(CaptureEngine aCapEngine, uint32_t aStreamId,
+ int DeliverFrameOverIPC(CaptureEngine aCapEngine, int aStreamId,
const TrackingId& aTrackingId, ShmemBuffer aBuffer,
unsigned char* aAltBuffer,
const VideoFrameProperties& aProps);
@@ -162,9 +161,6 @@ class CamerasParent final : public PCamerasParent {
int aEngine);
VideoEngine* EnsureInitialized(int aEngine);
- bool IsWindowCapturing(VideoEngine* aEngine, uint64_t aWindowID,
- const nsACString& aUniqueIdUTF8);
-
// Stops any ongoing capturing and releases resources. Called on
// mVideoCaptureThread. Idempotent.
void CloseEngines();
@@ -197,7 +193,7 @@ class CamerasParent final : public PCamerasParent {
// Set to true in ActorDestroy. PBackground only.
bool mDestroyed;
- std::map<nsCString, std::map<uint32_t, webrtc::VideoCaptureCapability>>
+ std::map<nsCString, std::map<int, webrtc::VideoCaptureCapability>>
mAllCandidateCapabilities;
// Listener for the camera VideoEngine::DeviceChangeEvent(). Video capture