mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-25 18:07:31 +09:00
[WebRTC] updated to upstream branch 49 and related.
this patch is based on 38d7a7883...226f2f0bd
This commit is contained in:
parent
e79847e7b9
commit
a3239eaa4d
2838 changed files with 151221 additions and 159688 deletions
|
|
@ -390,22 +390,4 @@ MediaEngineCameraVideoSource::SetDirectListeners(bool aHasDirectListeners)
|
|||
mHasDirectListeners = aHasDirectListeners;
|
||||
}
|
||||
|
||||
bool operator == (const webrtc::CaptureCapability& a,
|
||||
const webrtc::CaptureCapability& b)
|
||||
{
|
||||
return a.width == b.width &&
|
||||
a.height == b.height &&
|
||||
a.maxFPS == b.maxFPS &&
|
||||
a.rawType == b.rawType &&
|
||||
a.codecType == b.codecType &&
|
||||
a.expectedCaptureDelay == b.expectedCaptureDelay &&
|
||||
a.interlaced == b.interlaced;
|
||||
};
|
||||
|
||||
bool operator != (const webrtc::CaptureCapability& a,
|
||||
const webrtc::CaptureCapability& b)
|
||||
{
|
||||
return !(a == b);
|
||||
}
|
||||
|
||||
} // namespace mozilla
|
||||
|
|
|
|||
|
|
@ -11,15 +11,18 @@
|
|||
|
||||
// conflicts with #include of scoped_ptr.h
|
||||
#undef FF
|
||||
#include "webrtc/video_engine/include/vie_capture.h"
|
||||
// Avoid warnings about redefinition of WARN_UNUSED_RESULT
|
||||
#include "ipc/IPCMessageUtils.h"
|
||||
|
||||
// WebRTC includes
|
||||
#include "webrtc/modules/video_capture/video_capture_defines.h"
|
||||
|
||||
namespace webrtc {
|
||||
using CaptureCapability = VideoCaptureCapability;
|
||||
}
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
bool operator == (const webrtc::CaptureCapability& a,
|
||||
const webrtc::CaptureCapability& b);
|
||||
bool operator != (const webrtc::CaptureCapability& a,
|
||||
const webrtc::CaptureCapability& b);
|
||||
|
||||
class MediaEngineCameraVideoSource : public MediaEngineVideoSource
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -350,23 +350,23 @@ MediaEngineRemoteVideoSource::NotifyPull(MediaStreamGraph* aGraph,
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
MediaEngineRemoteVideoSource::FrameSizeChange(unsigned int w, unsigned int h,
|
||||
unsigned int streams)
|
||||
void
|
||||
MediaEngineRemoteVideoSource::FrameSizeChange(unsigned int w, unsigned int h)
|
||||
{
|
||||
mWidth = w;
|
||||
mHeight = h;
|
||||
LOG(("MediaEngineRemoteVideoSource Video FrameSizeChange: %ux%u", w, h));
|
||||
return 0;
|
||||
#if defined(MOZ_WIDGET_GONK)
|
||||
mMonitor.AssertCurrentThreadOwns(); // mWidth and mHeight are protected...
|
||||
#endif
|
||||
if ((mWidth < 0) || (mHeight < 0) ||
|
||||
(w != (unsigned int) mWidth) || (h != (unsigned int) mHeight)) {
|
||||
LOG(("MediaEngineRemoteVideoSource Video FrameSizeChange: %ux%u was %ux%u", w, h, mWidth, mHeight));
|
||||
mWidth = w;
|
||||
mHeight = h;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
MediaEngineRemoteVideoSource::DeliverFrame(unsigned char* buffer,
|
||||
size_t size,
|
||||
uint32_t time_stamp,
|
||||
int64_t ntp_time,
|
||||
int64_t render_time,
|
||||
void *handle)
|
||||
MediaEngineRemoteVideoSource::DeliverFrame(uint8_t* aBuffer ,
|
||||
const camera::VideoFrameProperties& aProps)
|
||||
{
|
||||
// Check for proper state.
|
||||
if (mState != kStarted) {
|
||||
|
|
@ -374,15 +374,13 @@ MediaEngineRemoteVideoSource::DeliverFrame(unsigned char* buffer,
|
|||
return 0;
|
||||
}
|
||||
|
||||
if ((size_t) (mWidth*mHeight + 2*(((mWidth+1)/2)*((mHeight+1)/2))) != size) {
|
||||
MOZ_ASSERT(false, "Wrong size frame in DeliverFrame!");
|
||||
return 0;
|
||||
}
|
||||
// Update the dimensions
|
||||
FrameSizeChange(aProps.width(), aProps.height());
|
||||
|
||||
// Create a video frame and append it to the track.
|
||||
RefPtr<layers::PlanarYCbCrImage> image = mImageContainer->CreatePlanarYCbCrImage();
|
||||
|
||||
uint8_t* frame = static_cast<uint8_t*> (buffer);
|
||||
uint8_t* frame = static_cast<uint8_t*> (aBuffer);
|
||||
const uint8_t lumaBpp = 8;
|
||||
const uint8_t chromaBpp = 4;
|
||||
|
||||
|
|
@ -407,8 +405,9 @@ MediaEngineRemoteVideoSource::DeliverFrame(unsigned char* buffer,
|
|||
|
||||
#ifdef DEBUG
|
||||
static uint32_t frame_num = 0;
|
||||
LOGFRAME(("frame %d (%dx%d); timestamp %u, ntp_time %" PRIu64 ", render_time %" PRIu64,
|
||||
frame_num++, mWidth, mHeight, time_stamp, ntp_time, render_time));
|
||||
LOGFRAME(("frame %d (%dx%d); timeStamp %u, ntpTimeMs %" PRIu64 ", renderTimeMs %" PRIu64,
|
||||
frame_num++, mWidth, mHeight,
|
||||
aProps.timeStamp(), aProps.ntpTimeMs(), aProps.renderTimeMs()));
|
||||
#endif
|
||||
|
||||
// we don't touch anything in 'this' until here (except for snapshot,
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@
|
|||
#include "nsDirectoryServiceDefs.h"
|
||||
#include "nsComponentManagerUtils.h"
|
||||
|
||||
// Avoid warnings about redefinition of WARN_UNUSED_RESULT
|
||||
#include "ipc/IPCMessageUtils.h"
|
||||
#include "VideoUtils.h"
|
||||
#include "MediaEngineCameraVideoSource.h"
|
||||
#include "VideoSegment.h"
|
||||
|
|
@ -31,40 +33,29 @@
|
|||
|
||||
// WebRTC library includes follow
|
||||
#include "webrtc/common.h"
|
||||
#include "webrtc/video_engine/include/vie_capture.h"
|
||||
#include "webrtc/video_engine/include/vie_render.h"
|
||||
|
||||
// Camera Access via IPC
|
||||
#include "CamerasChild.h"
|
||||
|
||||
#include "NullTransport.h"
|
||||
|
||||
namespace webrtc {
|
||||
class I420VideoFrame;
|
||||
}
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
/**
|
||||
* The WebRTC implementation of the MediaEngine interface.
|
||||
*/
|
||||
class MediaEngineRemoteVideoSource : public MediaEngineCameraVideoSource,
|
||||
public webrtc::ExternalRenderer
|
||||
public camera::FrameRelay
|
||||
{
|
||||
typedef MediaEngineCameraVideoSource Super;
|
||||
public:
|
||||
NS_DECL_THREADSAFE_ISUPPORTS
|
||||
|
||||
// Old ExternalRenderer
|
||||
void FrameSizeChange(unsigned int w, unsigned int h) override;
|
||||
// ExternalRenderer
|
||||
int FrameSizeChange(unsigned int w, unsigned int h,
|
||||
unsigned int streams) override;
|
||||
int DeliverFrame(unsigned char* buffer,
|
||||
size_t size,
|
||||
uint32_t time_stamp,
|
||||
int64_t ntp_time,
|
||||
int64_t render_time,
|
||||
void *handle) override;
|
||||
// XXX!!!! FIX THIS
|
||||
int DeliverI420Frame(const webrtc::I420VideoFrame& webrtc_frame) override { return 0; };
|
||||
bool IsTextureSupported() override { return false; };
|
||||
int DeliverFrame(uint8_t* buffer,
|
||||
const camera::VideoFrameProperties& properties) override;
|
||||
|
||||
// MediaEngineCameraVideoSource
|
||||
MediaEngineRemoteVideoSource(int aIndex, mozilla::camera::CaptureEngine aCapEngine,
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#include "nsComponentManagerUtils.h"
|
||||
#include "nsRefPtrHashtable.h"
|
||||
|
||||
#include "ipc/IPCMessageUtils.h"
|
||||
#include "VideoUtils.h"
|
||||
#include "MediaEngineCameraVideoSource.h"
|
||||
#include "VideoSegment.h"
|
||||
|
|
@ -36,6 +37,8 @@
|
|||
|
||||
#include "MediaEngineWrapper.h"
|
||||
#include "mozilla/dom/MediaStreamTrackBinding.h"
|
||||
#include "CamerasChild.h"
|
||||
|
||||
// WebRTC library includes follow
|
||||
#include "webrtc/common.h"
|
||||
// Audio Engine
|
||||
|
|
@ -52,11 +55,9 @@
|
|||
// Video Engine
|
||||
// conflicts with #include of scoped_ptr.h
|
||||
#undef FF
|
||||
#include "webrtc/video_engine/include/vie_base.h"
|
||||
#include "webrtc/video_engine/include/vie_codec.h"
|
||||
#include "webrtc/video_engine/include/vie_render.h"
|
||||
#include "webrtc/video_engine/include/vie_capture.h"
|
||||
#include "CamerasChild.h"
|
||||
|
||||
// WebRTC imports
|
||||
#include "webrtc/modules/video_capture/video_capture_defines.h"
|
||||
|
||||
#include "NullTransport.h"
|
||||
#include "AudioOutputObserver.h"
|
||||
|
|
@ -256,10 +257,10 @@ public:
|
|||
MOZ_ASSERT(mDevices);
|
||||
|
||||
if (mInUseCount == 0) {
|
||||
ScopedCustomReleasePtr<webrtc::VoEExternalMedia> ptrVoERender;
|
||||
ptrVoERender = webrtc::VoEExternalMedia::GetInterface(mVoiceEngine);
|
||||
if (ptrVoERender) {
|
||||
ptrVoERender->SetExternalRecordingStatus(true);
|
||||
ScopedCustomReleasePtr<webrtc::VoEExternalMedia> ptrVoEXMedia;
|
||||
ptrVoEXMedia = webrtc::VoEExternalMedia::GetInterface(mVoiceEngine);
|
||||
if (ptrVoEXMedia) {
|
||||
ptrVoEXMedia->SetExternalRecordingStatus(true);
|
||||
}
|
||||
mAnyInUse = true;
|
||||
}
|
||||
|
|
@ -475,9 +476,9 @@ public:
|
|||
const nsString& aDeviceId) const override;
|
||||
|
||||
// VoEMediaProcess.
|
||||
void Process(int channel, webrtc::ProcessingTypes type,
|
||||
int16_t audio10ms[], int length,
|
||||
int samplingFreq, bool isStereo) override;
|
||||
virtual void Process(int channel, webrtc::ProcessingTypes type,
|
||||
int16_t audio10ms[], size_t length,
|
||||
int samplingFreq, bool isStereo) override;
|
||||
|
||||
void Shutdown() override;
|
||||
|
||||
|
|
|
|||
|
|
@ -824,7 +824,7 @@ typedef int16_t sample;
|
|||
void
|
||||
MediaEngineWebRTCMicrophoneSource::Process(int channel,
|
||||
webrtc::ProcessingTypes type,
|
||||
sample *audio10ms, int length,
|
||||
sample *audio10ms, size_t length,
|
||||
int samplingFreq, bool isStereo)
|
||||
{
|
||||
MOZ_ASSERT(!PassThrough(), "This should be bypassed when in PassThrough mode.");
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@
|
|||
|
||||
namespace mozilla {
|
||||
|
||||
using dom::ConstrainBooleanParameters;
|
||||
using dom::OwningLongOrConstrainLongRange;
|
||||
|
||||
template<class ValueType>
|
||||
template<class ConstrainRange>
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue