diff --git a/dom/media/webrtc/jsapi/RTCEncodedFrameBase.h b/dom/media/webrtc/jsapi/RTCEncodedFrameBase.h
--- a/dom/media/webrtc/jsapi/RTCEncodedFrameBase.h
+++ b/dom/media/webrtc/jsapi/RTCEncodedFrameBase.h
@@ -21,16 +21,20 @@ class TransformableFrameInterface;
 
 namespace mozilla::dom {
 
 struct RTCEncodedFrameState {
   std::unique_ptr<webrtc::TransformableFrameInterface> mFrame;
   uint64_t mCounter = 0;
   unsigned long mTimestamp = 0;
 
+  explicit RTCEncodedFrameState(
+      std::unique_ptr<webrtc::TransformableFrameInterface> aFrame,
+      uint64_t aCounter = 0, unsigned long aTimestamp = 0);
+
   // work around only having forward-declared TransformableFrameInterface
   ~RTCEncodedFrameState();
 
   // avoid "move got disabled by a user-declared destructor” trap
   RTCEncodedFrameState() = default;
   RTCEncodedFrameState(RTCEncodedFrameState&&) noexcept = default;
   RTCEncodedFrameState& operator=(RTCEncodedFrameState&&) noexcept = default;
   RTCEncodedFrameState(const RTCEncodedFrameState&) = delete;
