(Auto)update libjingle 69588980-> 69589535
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6503 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -27,90 +27,39 @@
|
||||
|
||||
#include "talk/media/base/mediaengine.h"
|
||||
|
||||
namespace cricket {
|
||||
const int MediaEngineInterface::kDefaultAudioDelayOffset = 0;
|
||||
}
|
||||
|
||||
#if !defined(DISABLE_MEDIA_ENGINE_FACTORY)
|
||||
|
||||
#if defined(HAVE_LINPHONE)
|
||||
#include "talk/media/other/linphonemediaengine.h"
|
||||
#endif // HAVE_LINPHONE
|
||||
#if defined(HAVE_WEBRTC_VOICE)
|
||||
#include "talk/media/webrtc/webrtcvoiceengine.h"
|
||||
#endif // HAVE_WEBRTC_VOICE
|
||||
#if defined(HAVE_WEBRTC_VIDEO)
|
||||
#include "talk/media/webrtc/webrtcvideoengine.h"
|
||||
#endif // HAVE_WEBRTC_VIDEO
|
||||
#if defined(HAVE_LMI)
|
||||
#include "talk/media/base/hybridvideoengine.h"
|
||||
#include "talk/media/lmi/lmimediaengine.h"
|
||||
#endif // HAVE_LMI
|
||||
#if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO)
|
||||
#include "talk/media/webrtc/webrtcmediaengine.h"
|
||||
#endif // HAVE_WEBRTC_VOICE && HAVE_WEBRTC_VIDEO
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif // HAVE_CONFIG
|
||||
|
||||
namespace cricket {
|
||||
#if defined(HAVE_WEBRTC_VOICE)
|
||||
#define AUDIO_ENG_NAME WebRtcVoiceEngine
|
||||
#else
|
||||
#define AUDIO_ENG_NAME NullVoiceEngine
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_WEBRTC_VIDEO)
|
||||
#if !defined(HAVE_LMI)
|
||||
template<>
|
||||
CompositeMediaEngine<WebRtcVoiceEngine, WebRtcVideoEngine>::
|
||||
CompositeMediaEngine() {
|
||||
video_.SetVoiceEngine(&voice_);
|
||||
MediaEngineInterface* CreateNullMediaEngine() {
|
||||
return new NullMediaEngine();
|
||||
}
|
||||
#define VIDEO_ENG_NAME WebRtcVideoEngine
|
||||
#else
|
||||
// If we have both WebRtcVideoEngine and LmiVideoEngine, enable dual-stack.
|
||||
// This small class here allows us to hook the WebRtcVideoChannel up to
|
||||
// the capturer owned by the LMI engine, without infecting the rest of the
|
||||
// HybridVideoEngine classes with this abstraction violation.
|
||||
class WebRtcLmiHybridVideoEngine
|
||||
: public HybridVideoEngine<WebRtcVideoEngine, LmiVideoEngine> {
|
||||
public:
|
||||
void SetVoiceEngine(WebRtcVoiceEngine* engine) {
|
||||
video1_.SetVoiceEngine(engine);
|
||||
}
|
||||
};
|
||||
template<>
|
||||
CompositeMediaEngine<WebRtcVoiceEngine, WebRtcLmiHybridVideoEngine>::
|
||||
CompositeMediaEngine() {
|
||||
video_.SetVoiceEngine(&voice_);
|
||||
}
|
||||
#define VIDEO_ENG_NAME WebRtcLmiHybridVideoEngine
|
||||
#endif
|
||||
#elif defined(HAVE_LMI)
|
||||
#define VIDEO_ENG_NAME LmiVideoEngine
|
||||
#else
|
||||
#define VIDEO_ENG_NAME NullVideoEngine
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO)
|
||||
MediaEngineFactory::MediaEngineCreateFunction
|
||||
MediaEngineFactory::create_function_ = NULL;
|
||||
MediaEngineFactory::create_function_ = WebRtcMediaEngineFactory::Create;
|
||||
#else
|
||||
MediaEngineFactory::MediaEngineCreateFunction
|
||||
MediaEngineFactory::create_function_ = CreateNullMediaEngine;
|
||||
#endif // HAVE_WEBRTC_VIDEO && HAVE_WEBRTC_VOICE
|
||||
|
||||
MediaEngineFactory::MediaEngineCreateFunction
|
||||
MediaEngineFactory::SetCreateFunction(MediaEngineCreateFunction function) {
|
||||
MediaEngineCreateFunction old_function = create_function_;
|
||||
create_function_ = function;
|
||||
return old_function;
|
||||
};
|
||||
}
|
||||
|
||||
MediaEngineInterface* MediaEngineFactory::Create() {
|
||||
if (create_function_) {
|
||||
return create_function_();
|
||||
} else {
|
||||
#if defined(HAVE_LINPHONE)
|
||||
return new LinphoneMediaEngine("", "");
|
||||
#elif defined(AUDIO_ENG_NAME) && defined(VIDEO_ENG_NAME)
|
||||
return new CompositeMediaEngine<AUDIO_ENG_NAME, VIDEO_ENG_NAME>();
|
||||
#else
|
||||
return new NullMediaEngine();
|
||||
#endif
|
||||
}
|
||||
return create_function_();
|
||||
}
|
||||
|
||||
}; // namespace cricket
|
||||
|
||||
Reference in New Issue
Block a user