Bug 830247: rollup of changes to media/webrtc/trunk, and backouts of some temp patches r=ted,derf

--HG--
rename : media/webrtc/trunk/webrtc/modules/video_capture/main/source/Windows/BaseFilter.cpp => media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseFilter.cpp
rename : media/webrtc/trunk/webrtc/modules/video_capture/main/source/Windows/BaseFilter.h => media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseFilter.h
rename : media/webrtc/trunk/webrtc/modules/video_capture/main/source/Windows/BaseInputPin.cpp => media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseInputPin.cpp
rename : media/webrtc/trunk/webrtc/modules/video_capture/main/source/Windows/BaseInputPin.h => media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseInputPin.h
rename : media/webrtc/trunk/webrtc/modules/video_capture/main/source/Windows/BasePin.cpp => media/webrtc/trunk/webrtc/modules/video_capture/windows/BasePin.cpp
rename : media/webrtc/trunk/webrtc/modules/video_capture/main/source/Windows/BasePin.h => media/webrtc/trunk/webrtc/modules/video_capture/windows/BasePin.h
rename : media/webrtc/trunk/webrtc/modules/video_capture/main/source/Windows/DShowTools.h => media/webrtc/trunk/webrtc/modules/video_capture/windows/DShowTools.h
rename : media/webrtc/trunk/webrtc/modules/video_capture/main/source/Windows/MediaType.cpp => media/webrtc/trunk/webrtc/modules/video_capture/windows/MediaType.cpp
rename : media/webrtc/trunk/webrtc/modules/video_capture/main/source/Windows/MediaType.h => media/webrtc/trunk/webrtc/modules/video_capture/windows/MediaType.h
This commit is contained in:
Randell Jesup 2013-02-09 23:16:10 -05:00
parent 6d07c75d87
commit 349a3e90c7
52 changed files with 414 additions and 351 deletions

View File

@ -9001,7 +9001,7 @@ if test -n "$MOZ_WEBRTC"; then
dnl Any --include files must also appear in -D FORCED_INCLUDE_FILE= entries
dnl so that regeneration via dependencies works correctly
WEBRTC_CONFIG="-D build_with_mozilla=1 --include ${srcdir}/media/webrtc/webrtc_config.gypi -D FORCED_INCLUDE_FILE=${srcdir}/media/webrtc/webrtc_config.gypi"
WEBRTC_CONFIG="-D build_with_mozilla=1 -D build_with_chromium=0 --include ${srcdir}/media/webrtc/webrtc_config.gypi -D FORCED_INCLUDE_FILE=${srcdir}/media/webrtc/webrtc_config.gypi"
GYP_WEBRTC_OPTIONS="--format=mozmake ${WEBRTC_CONFIG} -D target_arch=${WEBRTC_TARGET_ARCH} ${EXTRA_GYP_DEFINES} --depth=${srcdir}/media/webrtc/trunk --toplevel-dir=${srcdir} -G OBJDIR=${_objdir}"

View File

@ -44,7 +44,7 @@ include $(topsrcdir)/config/rules.mk
ifdef MOZ_WEBRTC
LOCAL_INCLUDES += \
-I$(topsrcdir)/media/webrtc/trunk/src \
-I$(topsrcdir)/media/webrtc/trunk/webrtc \
-I$(topsrcdir)/media/webrtc/signaling/src/common \
-I$(topsrcdir)/media/webrtc/signaling/src/common/browser_logging \
$(NULL)

View File

@ -45,7 +45,7 @@ CPPSRCS = \
ifdef MOZ_WEBRTC
LOCAL_INCLUDES += \
-I$(topsrcdir)/media/webrtc/trunk/src \
-I$(topsrcdir)/media/webrtc/trunk/webrtc \
-I$(topsrcdir)/media/webrtc/signaling/src/common \
$(NULL)
DIRS += bridge

View File

@ -43,6 +43,7 @@ vpx_codec_enc_init_ver
vpx_codec_vp8_cx
#endif
vpx_img_set_rect
vpx_img_wrap
vpx_codec_get_cx_data
vpx_codec_enc_config_default
vpx_img_alloc

View File

@ -4,41 +4,36 @@
# shared libs for webrtc
WEBRTC_LIBS = \
$(call EXPAND_LIBNAME_PATH,video_capture_module,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_capture_module) \
$(call EXPAND_LIBNAME_PATH,webrtc_utility,$(DEPTH)/media/webrtc/trunk/src/modules/modules_webrtc_utility) \
$(call EXPAND_LIBNAME_PATH,audio_coding_module,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_coding_module) \
$(call EXPAND_LIBNAME_PATH,CNG,$(DEPTH)/media/webrtc/trunk/src/modules/modules_CNG) \
$(call EXPAND_LIBNAME_PATH,signal_processing,$(DEPTH)/media/webrtc/trunk/src/common_audio/common_audio_signal_processing) \
$(call EXPAND_LIBNAME_PATH,G711,$(DEPTH)/media/webrtc/trunk/src/modules/modules_G711) \
$(call EXPAND_LIBNAME_PATH,opus,$(DEPTH)/media/webrtc/trunk/src/modules/modules_opus) \
$(call EXPAND_LIBNAME_PATH,PCM16B,$(DEPTH)/media/webrtc/trunk/src/modules/modules_PCM16B) \
$(call EXPAND_LIBNAME_PATH,NetEq,$(DEPTH)/media/webrtc/trunk/src/modules/modules_NetEq) \
$(call EXPAND_LIBNAME_PATH,resampler,$(DEPTH)/media/webrtc/trunk/src/common_audio/common_audio_resampler) \
$(call EXPAND_LIBNAME_PATH,vad,$(DEPTH)/media/webrtc/trunk/src/common_audio/common_audio_vad) \
$(call EXPAND_LIBNAME_PATH,system_wrappers,$(DEPTH)/media/webrtc/trunk/src/system_wrappers/source/system_wrappers_system_wrappers) \
$(call EXPAND_LIBNAME_PATH,webrtc_video_coding,$(DEPTH)/media/webrtc/trunk/src/modules/modules_webrtc_video_coding) \
$(call EXPAND_LIBNAME_PATH,webrtc_i420,$(DEPTH)/media/webrtc/trunk/src/modules/modules_webrtc_i420) \
$(call EXPAND_LIBNAME_PATH,webrtc_vp8,$(DEPTH)/media/webrtc/trunk/src/modules/video_coding/codecs/vp8/vp8_webrtc_vp8) \
$(call EXPAND_LIBNAME_PATH,webrtc_libyuv,$(DEPTH)/media/webrtc/trunk/src/common_video/common_video_webrtc_libyuv) \
$(call EXPAND_LIBNAME_PATH,video_render_module,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_render_module) \
$(call EXPAND_LIBNAME_PATH,video_engine_core,$(DEPTH)/media/webrtc/trunk/src/video_engine/video_engine_video_engine_core) \
$(call EXPAND_LIBNAME_PATH,media_file,$(DEPTH)/media/webrtc/trunk/src/modules/modules_media_file) \
$(call EXPAND_LIBNAME_PATH,rtp_rtcp,$(DEPTH)/media/webrtc/trunk/src/modules/modules_rtp_rtcp) \
$(call EXPAND_LIBNAME_PATH,udp_transport,$(DEPTH)/media/webrtc/trunk/src/modules/modules_udp_transport) \
$(call EXPAND_LIBNAME_PATH,bitrate_controller,$(DEPTH)/media/webrtc/trunk/src/modules/modules_bitrate_controller) \
$(call EXPAND_LIBNAME_PATH,remote_bitrate_estimator,$(DEPTH)/media/webrtc/trunk/src/modules/modules_remote_bitrate_estimator) \
$(call EXPAND_LIBNAME_PATH,video_processing,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing) \
$(call EXPAND_LIBNAME_PATH,voice_engine_core,$(DEPTH)/media/webrtc/trunk/src/voice_engine/voice_engine_voice_engine_core) \
$(call EXPAND_LIBNAME_PATH,audio_conference_mixer,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_conference_mixer) \
$(call EXPAND_LIBNAME_PATH,audio_device,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_device) \
$(call EXPAND_LIBNAME_PATH,audio_processing,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_processing) \
$(call EXPAND_LIBNAME_PATH,aec,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec) \
$(call EXPAND_LIBNAME_PATH,apm_util,$(DEPTH)/media/webrtc/trunk/src/modules/modules_apm_util) \
$(call EXPAND_LIBNAME_PATH,aecm,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aecm) \
$(call EXPAND_LIBNAME_PATH,agc,$(DEPTH)/media/webrtc/trunk/src/modules/modules_agc) \
$(call EXPAND_LIBNAME_PATH,ns,$(DEPTH)/media/webrtc/trunk/src/modules/modules_ns) \
$(call EXPAND_LIBNAME_PATH,common_video,$(DEPTH)/media/webrtc/trunk/webrtc/common_video/common_video_common_video) \
$(call EXPAND_LIBNAME_PATH,video_capture_module,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_video_capture_module) \
$(call EXPAND_LIBNAME_PATH,webrtc_utility,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_webrtc_utility) \
$(call EXPAND_LIBNAME_PATH,audio_coding_module,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_audio_coding_module) \
$(call EXPAND_LIBNAME_PATH,CNG,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_CNG) \
$(call EXPAND_LIBNAME_PATH,signal_processing,$(DEPTH)/media/webrtc/trunk/webrtc/common_audio/common_audio_signal_processing) \
$(call EXPAND_LIBNAME_PATH,G711,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_G711) \
$(call EXPAND_LIBNAME_PATH,PCM16B,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_PCM16B) \
$(call EXPAND_LIBNAME_PATH,NetEq,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_NetEq) \
$(call EXPAND_LIBNAME_PATH,resampler,$(DEPTH)/media/webrtc/trunk/webrtc/common_audio/common_audio_resampler) \
$(call EXPAND_LIBNAME_PATH,vad,$(DEPTH)/media/webrtc/trunk/webrtc/common_audio/common_audio_vad) \
$(call EXPAND_LIBNAME_PATH,system_wrappers,$(DEPTH)/media/webrtc/trunk/webrtc/system_wrappers/source/system_wrappers_system_wrappers) \
$(call EXPAND_LIBNAME_PATH,webrtc_video_coding,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_webrtc_video_coding) \
$(call EXPAND_LIBNAME_PATH,webrtc_i420,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_webrtc_i420) \
$(call EXPAND_LIBNAME_PATH,webrtc_vp8,$(DEPTH)/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_webrtc_vp8) \
$(call EXPAND_LIBNAME_PATH,webrtc_opus,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_webrtc_opus) \
$(call EXPAND_LIBNAME_PATH,video_render_module,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_video_render_module) \
$(call EXPAND_LIBNAME_PATH,video_engine_core,$(DEPTH)/media/webrtc/trunk/webrtc/video_engine/video_engine_video_engine_core) \
$(call EXPAND_LIBNAME_PATH,media_file,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_media_file) \
$(call EXPAND_LIBNAME_PATH,rtp_rtcp,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_rtp_rtcp) \
$(call EXPAND_LIBNAME_PATH,udp_transport,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_udp_transport) \
$(call EXPAND_LIBNAME_PATH,bitrate_controller,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_bitrate_controller) \
$(call EXPAND_LIBNAME_PATH,remote_bitrate_estimator,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_remote_bitrate_estimator) \
$(call EXPAND_LIBNAME_PATH,paced_sender,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_paced_sender) \
$(call EXPAND_LIBNAME_PATH,video_processing,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_video_processing) \
$(call EXPAND_LIBNAME_PATH,voice_engine_core,$(DEPTH)/media/webrtc/trunk/webrtc/voice_engine/voice_engine_voice_engine_core) \
$(call EXPAND_LIBNAME_PATH,audio_conference_mixer,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_audio_conference_mixer) \
$(call EXPAND_LIBNAME_PATH,audio_device,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_audio_device) \
$(call EXPAND_LIBNAME_PATH,audio_processing,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_audio_processing) \
$(call EXPAND_LIBNAME_PATH,yuv,$(DEPTH)/media/webrtc/trunk/third_party/libyuv/libyuv_libyuv) \
$(call EXPAND_LIBNAME_PATH,webrtc_jpeg,$(DEPTH)/media/webrtc/trunk/src/common_video/common_video_webrtc_jpeg) \
$(call EXPAND_LIBNAME_PATH,nicer,$(DEPTH)/media/mtransport/third_party/nICEr/nicer_nicer) \
$(call EXPAND_LIBNAME_PATH,nrappkit,$(DEPTH)/media/mtransport/third_party/nrappkit/nrappkit_nrappkit) \
$(NULL)
@ -46,15 +41,15 @@ WEBRTC_LIBS = \
# if we're on an intel arch, we want SSE2 optimizations
ifneq (,$(INTEL_ARCHITECTURE))
WEBRTC_LIBS += \
$(call EXPAND_LIBNAME_PATH,video_processing_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing_sse2) \
$(call EXPAND_LIBNAME_PATH,aec_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec_sse2) \
$(call EXPAND_LIBNAME_PATH,video_processing_sse2,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_video_processing_sse2) \
$(call EXPAND_LIBNAME_PATH,audio_processing_sse2,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_audio_processing_sse2) \
$(NULL)
endif
# neon for ARM
ifeq ($(HAVE_ARM_NEON),1)
WEBRTC_LIBS += \
$(call EXPAND_LIBNAME_PATH,aecm_neon,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aecm_neon) \
$(call EXPAND_LIBNAME_PATH,aecm_neon,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_aecm_neon) \
$(NULL)
endif
@ -62,8 +57,8 @@ endif
# If you enable one of these codecs in webrtc_config.gypi, you'll need to re-add the
# relevant library from this list:
#
# $(call EXPAND_LIBNAME_PATH,G722,$(DEPTH)/media/webrtc/trunk/src/modules/modules_G722) \
# $(call EXPAND_LIBNAME_PATH,iLBC,$(DEPTH)/media/webrtc/trunk/src/modules/modules_iLBC) \
# $(call EXPAND_LIBNAME_PATH,iSAC,$(DEPTH)/media/webrtc/trunk/src/modules/modules_iSAC) \
# $(call EXPAND_LIBNAME_PATH,iSACFix,$(DEPTH)/media/webrtc/trunk/src/modules/modules_iSACFix) \
# $(call EXPAND_LIBNAME_PATH,G722,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_G722) \
# $(call EXPAND_LIBNAME_PATH,iLBC,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_iLBC) \
# $(call EXPAND_LIBNAME_PATH,iSAC,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_iSAC) \
# $(call EXPAND_LIBNAME_PATH,iSACFix,$(DEPTH)/media/webrtc/trunk/webrtc/modules/modules_iSACFix) \
#

View File

@ -45,11 +45,11 @@
'$(DEPTH)/dist/include',
'../../../dom/base',
'../../../media/mtransport',
'../trunk/src',
'../trunk/src/video_engine/include',
'../trunk/src/voice_engine/include',
'../trunk/src/modules/interface',
'../trunk/src/peerconnection',
'../trunk/webrtc',
'../trunk/webrtc/video_engine/include',
'../trunk/webrtc/voice_engine/include',
'../trunk/webrtc/modules/interface',
'../trunk/webrtc/peerconnection',
'../../../netwerk/srtp/src/include',
'../../../netwerk/srtp/src/crypto/include',
'../../../ipc/chromium/src',

View File

@ -511,7 +511,7 @@ class TransportConduitTest : public ::testing::Test
//configure send and recv codecs on the audio-conduit
//mozilla::AudioCodecConfig cinst1(124,"PCMU",8000,80,1,64000);
mozilla::AudioCodecConfig cinst1(124,"opus",48000,480,1,64000);
mozilla::AudioCodecConfig cinst1(124,"opus",48000,960,1,64000);
mozilla::AudioCodecConfig cinst2(125,"L16",16000,320,1,256000);

View File

@ -7,7 +7,7 @@
# be found in the AUTHORS file in the root of the source tree.
{
'includes': [ 'src/build/common.gypi', ],
'includes': [ 'webrtc/build/common.gypi', ],
'variables': {
'peerconnection_sample': 'third_party/libjingle/source/talk/examples/peerconnection',
},
@ -33,16 +33,12 @@
'message': 'Generating scream',
}, ],
'dependencies': [
# 'third_party/libjingle/libjingle.gyp:libjingle',
## allow building without libjingle
## 'third_party/libjingle/libjingle.gyp:libjingle_app',
'src/modules/modules.gyp:audio_device',
'src/modules/modules.gyp:video_capture_module',
# 'src/modules/modules.gyp:video_render_module',
# 'src/system_wrappers/source/system_wrappers.gyp:system_wrappers',
'src/video_engine/video_engine.gyp:video_engine_core',
'src/voice_engine/voice_engine.gyp:voice_engine_core',
'webrtc/modules/modules.gyp:audio_device',
'webrtc/modules/modules.gyp:video_capture_module',
# 'webrtc/modules/modules.gyp:video_render_module',
# 'webrtc/system_wrappers/source/system_wrappers.gyp:system_wrappers',
'webrtc/video_engine/video_engine.gyp:video_engine_core',
'webrtc/voice_engine/voice_engine.gyp:voice_engine_core',
'<(DEPTH)/third_party/libyuv/libyuv.gyp:libyuv',
],
}, ],
@ -98,7 +94,7 @@
],
'include_dirs': [
'src',
'src/modules/interface',
'webrtc/modules/interface',
'third_party/libjingle/source',
],
},

View File

@ -1,12 +1,30 @@
# This file will be picked up by gyp to initialize some global settings.
{
'variables': {
'build_with_chromium': 0,
'enable_protobuf': 0,
'enabled_libjingle_device_manager': 1,
'include_internal_audio_device': 1,
'include_internal_video_capture': 1,
'include_internal_video_render': 0,
'include_pulse_audio': 0,
}
# make sure we can override this with --include
'build_with_chromium%': 1,
'clang_use_chrome_plugins%': 0,
'enable_protobuf%': 1,
'enabled_libjingle_device_manager%': 1,
'include_internal_audio_device%': 1,
'include_internal_video_capture%': 1,
'include_internal_video_render%': 1,
'include_pulse_audio%': 1,
'use_openssl%': 1,
},
'target_defaults': {
'conditions': [
['OS=="linux" and clang==1', {
'cflags': [
# Suppress the warning caused by
# LateBindingSymbolTable::TableInfo from
# latebindingsymboltable.cc.def.
'-Wno-address-of-array-temporary',
],
'cflags_mozilla': [
'-Wno-address-of-array-temporary',
],
}],
],
}, # target_defaults
}

View File

@ -1,70 +0,0 @@
/*
* Copyright 2011 The LibYuv Project Authors. All rights reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef SOURCE_ROTATE_PRIV_H_
#define SOURCE_ROTATE_PRIV_H_
#include "libyuv/basic_types.h"
#ifdef __cplusplus
namespace libyuv {
extern "C" {
#endif
// Rotate planes by 90, 180, 270
void RotatePlane90(const uint8* src, int src_stride,
uint8* dst, int dst_stride,
int width, int height);
void RotatePlane180(const uint8* src, int src_stride,
uint8* dst, int dst_stride,
int width, int height);
void RotatePlane270(const uint8* src, int src_stride,
uint8* dst, int dst_stride,
int width, int height);
void RotateUV90(const uint8* src, int src_stride,
uint8* dst_a, int dst_stride_a,
uint8* dst_b, int dst_stride_b,
int width, int height);
// Rotations for when U and V are interleaved.
// These functions take one input pointer and
// split the data into two buffers while
// rotating them.
void RotateUV180(const uint8* src, int src_stride,
uint8* dst_a, int dst_stride_a,
uint8* dst_b, int dst_stride_b,
int width, int height);
void RotateUV270(const uint8* src, int src_stride,
uint8* dst_a, int dst_stride_a,
uint8* dst_b, int dst_stride_b,
int width, int height);
// The 90 and 270 functions are based on transposes.
// Doing a transpose with reversing the read/write
// order will result in a rotation by +- 90 degrees.
void TransposePlane(const uint8* src, int src_stride,
uint8* dst, int dst_stride,
int width, int height);
void TransposeUV(const uint8* src, int src_stride,
uint8* dst_a, int dst_stride_a,
uint8* dst_b, int dst_stride_b,
int width, int height);
#ifdef __cplusplus
} // extern "C"
} // namespace libyuv
#endif
#endif // SOURCE_ROTATE_PRIV_H_

View File

@ -1,68 +0,0 @@
#!/usr/bin/env python
# Copyright (c) 2011 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import tempfile
import shutil
import subprocess
def TestCommands(commands, files={}, env={}):
"""Run commands in a temporary directory, returning true if they all succeed.
Return false on failures or if any commands produce output.
Arguments:
commands: an array of shell-interpretable commands, e.g. ['ls -l', 'pwd']
each will be expanded with Python %-expansion using env first.
files: a dictionary mapping filename to contents;
files will be created in the temporary directory before running
the command.
env: a dictionary of strings to expand commands with.
"""
tempdir = tempfile.mkdtemp()
try:
for name, contents in files.items():
f = open(os.path.join(tempdir, name), 'wb')
f.write(contents)
f.close()
for command in commands:
proc = subprocess.Popen(command % env, shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
cwd=tempdir)
output = proc.communicate()[0]
if proc.returncode != 0 or output:
return False
return True
finally:
shutil.rmtree(tempdir)
return False
def TestArSupportsT(ar_command='ar', cc_command='cc'):
"""Test whether 'ar' supports the 'T' flag."""
return TestCommands(['%(cc)s -c test.c',
'%(ar)s crsT test.a test.o',
'%(cc)s test.a'],
files={'test.c': 'int main(){}'},
env={'ar': ar_command, 'cc': cc_command})
def main():
# Run the various test functions and print the results.
def RunTest(description, function, **kwargs):
print "Testing " + description + ':',
if function(**kwargs):
print 'ok'
else:
print 'fail'
RunTest("ar 'T' flag", TestArSupportsT)
RunTest("ar 'T' flag with ccache", TestArSupportsT, cc_command='ccache cc')
return 0
if __name__ == '__main__':
sys.exit(main())

View File

@ -23,8 +23,15 @@
'cflags!': [
'-mfpu=vfpv3-d16',
],
'cflags_mozilla!': [
'-mfpu=vfpv3-d16',
],
'cflags': [
'-mfpu=neon',
'-flax-vector-conversions',
],
'cflags_mozilla': [
'-mfpu=neon',
'-flax-vector-conversions',
],
}

View File

@ -32,12 +32,23 @@
'webrtc_root%': '<(webrtc_root)',
'webrtc_vp8_dir%': '<(webrtc_root)/modules/video_coding/codecs/vp8',
'include_g711%': 1,
'include_g722%': 1,
'include_ilbc%': 1,
'include_opus%': 1,
'include_isac%': 1,
'include_pcm16b%': 1,
},
'build_with_chromium%': '<(build_with_chromium)',
'webrtc_root%': '<(webrtc_root)',
'webrtc_vp8_dir%': '<(webrtc_vp8_dir)',
'include_g711%': '<(include_g711)',
'include_g722%': '<(include_g722)',
'include_ilbc%': '<(include_ilbc)',
'include_opus%': '<(include_opus)',
'include_isac%': '<(include_isac)',
'include_pcm16b%': '<(include_pcm16b)',
# The Chromium common.gypi we use treats all gyp files without
# chromium_code==1 as third party code. This disables many of the
@ -135,7 +146,7 @@
'defines': [
# TODO(leozwang): Run this as a gclient hook rather than at build-time:
# http://code.google.com/p/webrtc/issues/detail?id=687
'WEBRTC_SVNREVISION="Unavailable(issue687)"',
'WEBRTC_SVNREVISION="\\\"Unavailable(issue687)\\\""',
#'WEBRTC_SVNREVISION="<!(python <(webrtc_root)/build/version.py)"',
],
'conditions': [
@ -176,6 +187,12 @@
'WEBRTC_MOZILLA_BUILD',
],
}],
['build_with_mozilla==1', {
'defines': [
# Changes settings for Mozilla build.
'WEBRTC_MOZILLA_BUILD',
],
}],
['target_arch=="arm"', {
'defines': [
'WEBRTC_ARCH_ARM',
@ -220,6 +237,7 @@
['OS=="win"', {
'defines': [
'WEBRTC_WIN',
'WEBRTC_EXPORT',
],
# TODO(andrew): enable all warnings when possible.
# 4389: Signed/unsigned mismatch.

View File

@ -44,5 +44,7 @@
},
],
},
# }],
# ],
],
}

View File

@ -357,7 +357,7 @@ enum NsModes // type of Noise Suppression
kNsLowSuppression, // lowest suppression
kNsModerateSuppression,
kNsHighSuppression,
kNsVeryHighSuppression, // highest suppression
kNsVeryHighSuppression // highest suppression
};
enum AgcModes // type of Automatic Gain Control
@ -382,7 +382,7 @@ enum EcModes // type of Echo Control
kEcDefault, // platform default
kEcConference, // conferencing default (aggressive AEC)
kEcAec, // Acoustic Echo Cancellation
kEcAecm, // AEC mobile
kEcAecm // AEC mobile
};
// AECM modes
@ -434,7 +434,7 @@ enum NetEqModes // NetEQ playout configurations
kNetEqFax = 2,
// Minimal buffer management. Inserts zeros for lost packets and during
// buffer increases.
kNetEqOff = 3,
kNetEqOff = 3
};
enum NetEqBgnModes // NetEQ Background Noise (BGN) configurations
@ -446,7 +446,7 @@ enum NetEqBgnModes // NetEQ Background Noise (BGN) configurations
kBgnFade = 1,
// BGN is not used at all. Silence is produced after speech extrapolation
// has faded.
kBgnOff = 2,
kBgnOff = 2
};
enum OnHoldModes // On Hold direction
@ -460,7 +460,7 @@ enum AmrMode
{
kRfc3267BwEfficient = 0,
kRfc3267OctetAligned = 1,
kRfc3267FileStorage = 2,
kRfc3267FileStorage = 2
};
// ==================================================================

View File

@ -15,10 +15,6 @@
#include "typedefs.h"
#ifdef WEBRTC_BIG_ENDIAN
#include "signal_processing_library.h"
#endif
#define HIGHEND 0xFF00
#define LOWEND 0xFF
@ -30,7 +26,7 @@ WebRtc_Word16 WebRtcPcm16b_EncodeW16(WebRtc_Word16 *speechIn16b,
WebRtc_Word16 *speechOut16b)
{
#ifdef WEBRTC_BIG_ENDIAN
WEBRTC_SPL_MEMCPY_W16(speechOut16b, speechIn16b, len);
memcpy(speechOut16b, speechIn16b, len * sizeof(WebRtc_Word16));
#else
int i;
for (i=0;i<len;i++) {
@ -69,7 +65,7 @@ WebRtc_Word16 WebRtcPcm16b_DecodeW16(void *inst,
WebRtc_Word16* speechType)
{
#ifdef WEBRTC_BIG_ENDIAN
WEBRTC_SPL_MEMCPY_W8(speechOut16b, speechIn16b, ((len*sizeof(WebRtc_Word16)+1)>>1));
memcpy(speechOut16b, speechIn16b, ((len*sizeof(WebRtc_Word16)+1)>>1));
#else
int i;
int samples=len>>1;

View File

@ -90,10 +90,6 @@
#include "webrtc/modules/audio_coding/codecs/opus/interface/opus_interface.h"
#include "webrtc/modules/audio_coding/main/source/acm_opus.h"
#endif
#ifdef WEBRTC_CODEC_OPUS
#include "acm_opus.h"
#include "opus_interface.h"
#endif
#ifdef WEBRTC_CODEC_SPEEX
#include "speex_interface.h"
#include "webrtc/modules/audio_coding/main/source/acm_speex.h"
@ -292,11 +288,6 @@ const ACMCodecDB::CodecSettings ACMCodecDB::codec_settings_[] = {
// Mono and stereo.
{1, {960}, 0, 2},
#endif
#ifdef WEBRTC_CODEC_OPUS
// Opus supports frames shorter than 10ms,
// but it doesn't help us to use them.
{1, {640}, 0, 2},
#endif
#ifdef WEBRTC_CODEC_SPEEX
{3, {160, 320, 480}, 0, 1},
{3, {320, 640, 960}, 0, 1},
@ -386,9 +377,6 @@ const WebRtcNetEQDecoder ACMCodecDB::neteq_decoders_[] = {
// Mono and stereo.
kDecoderOpus,
#endif
#ifdef WEBRTC_CODEC_OPUS
kDecoderOpus,
#endif
#ifdef WEBRTC_CODEC_SPEEX
kDecoderSPEEX_8,
kDecoderSPEEX_16,

View File

@ -173,9 +173,6 @@ class ACMCodecDB {
#ifndef WEBRTC_CODEC_GSMFR
enum {kGSMFR = -1};
#endif
#ifndef WEBRTC_CODEC_OPUS
enum {kOpus = -1};
#endif
#ifndef WEBRTC_CODEC_SPEEX
enum {kSPEEX8 = -1};
enum {kSPEEX16 = -1};

View File

@ -10,13 +10,6 @@
'variables': {
'audio_coding_dependencies': [
'CNG',
'G711',
'G722',
'iLBC',
'iSAC',
'iSACFix',
'opus',
'PCM16B',
'NetEq',
'<(webrtc_root)/common_audio/common_audio.gyp:resampler',
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
@ -28,6 +21,57 @@
['include_opus==1', {
'audio_coding_dependencies': ['webrtc_opus',],
'audio_coding_defines': ['WEBRTC_CODEC_OPUS',],
'audio_coding_sources': [
'acm_opus.cc',
'acm_opus.h',
],
}],
['include_g711==1', {
'audio_coding_dependencies': ['G711',],
'audio_coding_defines': ['WEBRTC_CODEC_G711',],
'audio_coding_sources': [
'acm_pcma.cc',
'acm_pcma.h',
'acm_pcmu.cc',
'acm_pcmu.h',
],
}],
['include_g722==1', {
'audio_coding_dependencies': ['G722',],
'audio_coding_defines': ['WEBRTC_CODEC_G722',],
'audio_coding_sources': [
'acm_g722.cc',
'acm_g722.h',
'acm_g7221.cc',
'acm_g7221.h',
'acm_g7221c.cc',
'acm_g7221c.h',
],
}],
['include_ilbc==1', {
'audio_coding_dependencies': ['iLBC',],
'audio_coding_defines': ['WEBRTC_CODEC_ILBC',],
'audio_coding_sources': [
'acm_ilbc.cc',
'acm_ilbc.h',
],
}],
['include_isac==1', {
'audio_coding_dependencies': ['iSAC', 'iSACFix',],
'audio_coding_defines': ['WEBRTC_CODEC_ISAC', 'WEBRTC_CODEC_ISACFX',],
'audio_coding_sources': [
'acm_isac.cc',
'acm_isac.h',
'acm_isac_macros.h',
],
}],
['include_pcm16b==1', {
'audio_coding_dependencies': ['PCM16B',],
'audio_coding_defines': ['WEBRTC_CODEC_PCM16',],
'audio_coding_sources': [
'acm_pcm16b.cc',
'acm_pcm16b.h',
],
}],
],
},
@ -53,14 +97,9 @@
],
},
'sources': [
# '<@(audio_coding_sources)',
'../interface/audio_coding_module.h',
'../interface/audio_coding_module_typedefs.h',
'acm_amr.cc',
'acm_amr.h',
'acm_amrwb.cc',
'acm_amrwb.h',
'acm_celt.cc',
'acm_celt.h',
'acm_cng.cc',
'acm_cng.h',
'acm_codec_database.cc',
@ -69,31 +108,13 @@
'acm_dtmf_detection.h',
'acm_dtmf_playout.cc',
'acm_dtmf_playout.h',
'acm_g722.cc',
'acm_g722.h',
'acm_g7221.cc',
'acm_g7221.h',
'acm_g7221c.cc',
'acm_g7221c.h',
'acm_g729.cc',
'acm_g729.h',
'acm_g7291.cc',
'acm_g7291.h',
'acm_generic_codec.cc',
'acm_generic_codec.h',
'acm_gsmfr.cc',
'acm_gsmfr.h',
'acm_ilbc.cc',
'acm_ilbc.h',
'acm_isac.cc',
'acm_isac.h',
'acm_isac_macros.h',
'acm_neteq.cc',
'acm_neteq.h',
# cheat until I get audio_coding_sources to work
'acm_opus.cc',
'acm_opus.h',
'acm_speex.cc',
'acm_speex.h',
'acm_pcm16b.cc',
'acm_pcm16b.h',
'acm_pcma.cc',

View File

@ -492,9 +492,6 @@ int WebRtcNetEQ_DbGetSplitInfo(SplitInfo_t *inst, enum WebRtcNetEQDecoder codecI
case kDecoderSPEEX_8:
case kDecoderSPEEX_16:
#endif
#ifdef NETEQ_OPUS_CODEC
case kDecoderOpus :
#endif
#ifdef NETEQ_CELT_CODEC
case kDecoderCELT_32 :
case kDecoderCELT_32_2ch :

View File

@ -69,6 +69,8 @@
* decoded signal is at 32 kHz.
* NETEQ_ISAC_FB_CODEC Enable iSAC-FB
*
* NETEQ_OPUS_CODEC Enable Opus
*
* NETEQ_G722_CODEC Enable G.722
*
* NETEQ_G729_CODEC Enable G.729
@ -328,6 +330,7 @@
#define NETEQ_PCM16B_CODEC
#define NETEQ_G711_CODEC
#define NETEQ_ILBC_CODEC
#define NETEQ_OPUS_CODEC
#define NETEQ_G729_CODEC
#define NETEQ_G726_CODEC
#define NETEQ_GSMFR_CODEC
@ -336,6 +339,7 @@
/* Wideband codecs */
#define NETEQ_WIDEBAND
#define NETEQ_ISAC_CODEC
#define NETEQ_OPUS_CODEC
#define NETEQ_G722_CODEC
#define NETEQ_G722_1_CODEC
#define NETEQ_G729_1_CODEC
@ -344,9 +348,14 @@
/* Super wideband 32kHz codecs */
#define NETEQ_ISAC_SWB_CODEC
#define NETEQ_OPUS_CODEC
#define NETEQ_32KHZ_WIDEBAND
#define NETEQ_G722_1C_CODEC
#define NETEQ_CELT_CODEC
#define NETEQ_OPUS_CODEC
/* hack in 48 kHz support */
#define NETEQ_48KHZ_WIDEBAND
/* Super wideband 48kHz codecs */
#define NETEQ_48KHZ_WIDEBAND

View File

@ -626,6 +626,11 @@ int WebRtcNetEQ_GetDefaultCodecSettings(const enum WebRtcNetEQDecoder *codecID,
codecBytes = 15300; /* 240ms @ 510kbps (60ms frames) */
codecBuffers = 30; /* Replicating the value for PCMu/a */
}
else if (codecID[i] == kDecoderOpus)
{
codecBytes = 15300; /* 240ms @ 510kbps (60ms frames) */
codecBuffers = 30; /* ?? Codec supports down to 2.5-60 ms frames */
}
else if ((codecID[i] == kDecoderPCM16B) ||
(codecID[i] == kDecoderPCM16B_2ch))
{

View File

@ -972,7 +972,8 @@ WebRtc_Word32 AudioDeviceLinuxALSA::RecordingDeviceName(
memset(guid, 0, kAdmMaxGuidSize);
}
return GetDevicesInfo(1, false, index, name, kAdmMaxDeviceNameSize);
return GetDevicesInfo(1, false, index, name, kAdmMaxDeviceNameSize,
guid, kAdmMaxGuidSize);
}
WebRtc_Word16 AudioDeviceLinuxALSA::RecordingDevices()
@ -1620,6 +1621,17 @@ WebRtc_Word32 AudioDeviceLinuxALSA::StartPlayout()
return -1;
}
int errVal = LATE(snd_pcm_prepare)(_handlePlayout);
if (errVal < 0)
{
WEBRTC_TRACE(kTraceCritical, kTraceAudioDevice, _id,
" playout snd_pcm_prepare failed (%s)\n",
LATE(snd_strerror)(errVal));
// just log error
// if snd_pcm_open fails will return -1
}
unsigned int threadID(0);
if (!_ptrThreadPlay->Start(threadID))
{
@ -1634,16 +1646,6 @@ WebRtc_Word32 AudioDeviceLinuxALSA::StartPlayout()
}
_playThreadID = threadID;
int errVal = LATE(snd_pcm_prepare)(_handlePlayout);
if (errVal < 0)
{
WEBRTC_TRACE(kTraceCritical, kTraceAudioDevice, _id,
" playout snd_pcm_prepare failed (%s)\n",
LATE(snd_strerror)(errVal));
// just log error
// if snd_pcm_open fails will return -1
}
return 0;
}
@ -1815,7 +1817,9 @@ WebRtc_Word32 AudioDeviceLinuxALSA::GetDevicesInfo(
const bool playback,
const WebRtc_Word32 enumDeviceNo,
char* enumDeviceName,
const WebRtc_Word32 ednLen) const
const WebRtc_Word32 ednLen,
char* enumDeviceId,
const WebRtc_Word32 ediLen) const
{
// Device enumeration based on libjingle implementation
@ -1854,6 +1858,8 @@ WebRtc_Word32 AudioDeviceLinuxALSA::GetDevicesInfo(
function == FUNC_GET_DEVICE_NAME_FOR_AN_ENUM) && enumDeviceNo == 0)
{
strcpy(enumDeviceName, "default");
if (enumDeviceId)
memset(enumDeviceId, 0, ediLen);
err = LATE(snd_device_name_free_hint)(hints);
if (err != 0)
@ -1916,6 +1922,11 @@ WebRtc_Word32 AudioDeviceLinuxALSA::GetDevicesInfo(
// We have found the enum device, copy the name to buffer.
strncpy(enumDeviceName, desc, ednLen);
enumDeviceName[ednLen-1] = '\0';
if (enumDeviceId)
{
strncpy(enumDeviceId, name, ediLen);
enumDeviceId[ediLen-1] = '\0';
}
keepSearching = false;
// Replace '\n' with '-'.
char * pret = strchr(enumDeviceName, '\n'/*0xa*/); //LF
@ -1928,6 +1939,11 @@ WebRtc_Word32 AudioDeviceLinuxALSA::GetDevicesInfo(
// We have found the enum device, copy the name to buffer.
strncpy(enumDeviceName, name, ednLen);
enumDeviceName[ednLen-1] = '\0';
if (enumDeviceId)
{
strncpy(enumDeviceId, name, ediLen);
enumDeviceId[ediLen-1] = '\0';
}
keepSearching = false;
}
@ -1952,7 +1968,7 @@ WebRtc_Word32 AudioDeviceLinuxALSA::GetDevicesInfo(
LATE(snd_strerror)(err));
// Continue and return true anyway, since we did get the whole list.
}
}
}
if (FUNC_GET_NUM_OF_DEVICE == function)
{

View File

@ -165,7 +165,9 @@ private:
const bool playback,
const WebRtc_Word32 enumDeviceNo = 0,
char* enumDeviceName = NULL,
const WebRtc_Word32 ednLen = 0) const;
const WebRtc_Word32 ednLen = 0,
char* enumDeviceID = NULL,
const WebRtc_Word32 ediLen = 0) const;
WebRtc_Word32 ErrorRecovery(WebRtc_Word32 error, snd_pcm_t* deviceHandle);
private:

View File

@ -15,7 +15,6 @@
'audio_coding/codecs/ilbc/ilbc.gypi',
'audio_coding/codecs/isac/main/source/isac.gypi',
'audio_coding/codecs/isac/fix/source/isacfix.gypi',
'audio_coding/codecs/opus/opus.gypi',
'audio_coding/codecs/pcm16b/pcm16b.gypi',
'audio_coding/main/source/audio_coding_module.gypi',
'audio_coding/neteq/neteq.gypi',

View File

@ -18,7 +18,6 @@
#include <sys/mman.h>
#include <string.h>
#include <iostream>
#include <new>
#include "ref_count.h"

View File

@ -91,11 +91,15 @@ using namespace webrtc;
return [NSNumber numberWithInt:-1];
}
QTCaptureDevice* tempCaptureDevice =
(QTCaptureDevice*)[_captureDevicesInfo objectAtIndex:index];
if ([_captureDevicesInfo count] <= index)
{
return [NSNumber numberWithInt:-1];
}
QTCaptureDevice* tempCaptureDevice = (QTCaptureDevice*)[_captureDevicesInfo objectAtIndex:index];
if(!tempCaptureDevice)
{
return [NSNumber numberWithInt:-1];
return [NSNumber numberWithInt:-1];
}
memset(deviceName, 0, deviceNameLength);

View File

@ -16,10 +16,17 @@
'<(webrtc_root)/common_video/common_video.gyp:common_video',
'<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
],
'cflags_mozilla': [
'$(NSPR_CFLAGS)',
],
'include_dirs': [
'include',
'../interface',
'<(webrtc_root)/common_video/libyuv/include',
# added for mozilla for use_system_libjpeg
'$(DIST)/include',
],
'sources': [
'device_info_impl.cc',
@ -79,8 +86,12 @@
},
}], # mac
['OS=="win"', {
'dependencies': [
'<(DEPTH)/third_party/winsdk_samples/winsdk_samples.gyp:directshow_baseclasses',
'conditions': [
['build_with_mozilla==0', {
'dependencies': [
'<(DEPTH)/third_party/winsdk_samples/winsdk_samples.gyp:directshow_baseclasses',
],
}],
],
'include_dirs': [
'windows',
@ -99,6 +110,10 @@
'windows/video_capture_factory_windows.cc',
'windows/video_capture_mf.cc',
'windows/video_capture_mf.h',
'windows/BasePin.cpp',
'windows/BaseFilter.cpp',
'windows/BaseInputPin.cpp',
'windows/MediaType.cpp',
],
'link_settings': {
'libraries': [

View File

@ -39,24 +39,50 @@
'dependencies': [
'<(DEPTH)/third_party/libvpx/libvpx.gyp:libvpx',
],
}],
# TODO(mikhal): Investigate this mechanism for handling differences
# between the Chromium and standalone builds.
# http://code.google.com/p/webrtc/issues/detail?id=201
['build_with_chromium==1', {
'conditions': [
# TODO(mikhal): Investigate this mechanism for handling differences
# between the Chromium and standalone builds.
# http://code.google.com/p/webrtc/issues/detail?id=201
['build_with_chromium==1', {
'defines': [
'WEBRTC_LIBVPX_VERSION=960' # Bali
],
}, {
'defines': [
'WEBRTC_LIBVPX_VERSION=971' # Cayuga
],
}],
['use_temporal_layers==1', {
'sources': [
'temporal_layers.h',
'temporal_layers.cc',
],
}],
],
},{
'include_dirs': [
'$(DIST)/include',
],
'defines': [
'WEBRTC_LIBVPX_VERSION=960' # Bali
# This must be updated to match mozilla's version of libvpx
'WEBRTC_LIBVPX_VERSION=1000',
],
}, {
'defines': [
'WEBRTC_LIBVPX_VERSION=971' # Cayuga
],
}],
['use_temporal_layers==1', {
'sources': [
'temporal_layers.h',
'temporal_layers.cc',
'conditions': [
['use_temporal_layers==1', {
'defines': [
'WEBRTC_LIBVPX_TEMPORAL_LAYERS=1'
],
},{
'defines': [
'WEBRTC_LIBVPX_TEMPORAL_LAYERS=0'
],
}],
],
'link_settings': {
'libraries': [
'$(LIBVPX_OBJ)/libvpx.a',
],
},
}],
],
'direct_dependent_settings': {

View File

@ -48,7 +48,7 @@ VP8EncoderImpl::VP8EncoderImpl()
rc_max_intra_target_(0),
token_partitions_(VP8_ONE_TOKENPARTITION),
rps_(new ReferencePictureSelection),
#if WEBRTC_LIBVPX_VERSION >= 971
#if WEBRTC_LIBVPX_VERSION >= 971 && WEBRTC_LIBVPX_TEMPORAL_LAYERS != 0
temporal_layers_(NULL),
#endif
encoder_(NULL),
@ -84,7 +84,7 @@ int VP8EncoderImpl::Release() {
vpx_img_free(raw_);
raw_ = NULL;
}
#if WEBRTC_LIBVPX_VERSION >= 971
#if WEBRTC_LIBVPX_VERSION >= 971 && WEBRTC_LIBVPX_TEMPORAL_LAYERS != 0
if (temporal_layers_ != NULL) {
delete temporal_layers_;
temporal_layers_ = NULL;
@ -111,7 +111,7 @@ int VP8EncoderImpl::SetRates(uint32_t new_bitrate_kbit,
}
config_->rc_target_bitrate = new_bitrate_kbit; // in kbit/s
#if WEBRTC_LIBVPX_VERSION >= 971
#if WEBRTC_LIBVPX_VERSION >= 971 && WEBRTC_LIBVPX_TEMPORAL_LAYERS != 0
temporal_layers_->ConfigureBitrates(new_bitrate_kbit, config_);
#endif
codec_.maxFramerate = new_framerate;
@ -158,7 +158,7 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst,
codec_ = *inst;
#if WEBRTC_LIBVPX_VERSION >= 971
#if WEBRTC_LIBVPX_VERSION >= 971 && WEBRTC_LIBVPX_TEMPORAL_LAYERS != 0
int num_temporal_layers = inst->codecSpecific.VP8.numberOfTemporalLayers > 1 ?
inst->codecSpecific.VP8.numberOfTemporalLayers : 1;
assert(temporal_layers_ == NULL);
@ -188,7 +188,7 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst,
config_->g_h = codec_.height;
config_->rc_target_bitrate = inst->startBitrate; // in kbit/s
#if WEBRTC_LIBVPX_VERSION >= 971
#if WEBRTC_LIBVPX_VERSION >= 971 && WEBRTC_LIBVPX_TEMPORAL_LAYERS != 0
temporal_layers_->ConfigureBitrates(inst->startBitrate, config_);
#endif
// setting the time base of the codec
@ -199,7 +199,7 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst,
switch (inst->codecSpecific.VP8.resilience) {
case kResilienceOff:
config_->g_error_resilient = 0;
#if WEBRTC_LIBVPX_VERSION >= 971
#if WEBRTC_LIBVPX_VERSION >= 971 && WEBRTC_LIBVPX_TEMPORAL_LAYERS != 0
if (num_temporal_layers > 1) {
// Must be on for temporal layers (i.e., |num_temporal_layers| > 1).
config_->g_error_resilient = 1;
@ -361,7 +361,7 @@ int VP8EncoderImpl::Encode(const I420VideoFrame& input_image,
raw_->stride[VPX_PLANE_V] = input_image.stride(kVPlane);
int flags = 0;
#if WEBRTC_LIBVPX_VERSION >= 971
#if WEBRTC_LIBVPX_VERSION >= 971 && WEBRTC_LIBVPX_TEMPORAL_LAYERS != 0
flags |= temporal_layers_->EncodeFlags();
#endif
bool send_keyframe = (frame_type == kKeyFrame);
@ -441,7 +441,7 @@ void VP8EncoderImpl::PopulateCodecSpecific(CodecSpecificInfo* codec_specific,
vp8Info->simulcastIdx = 0;
vp8Info->keyIdx = kNoKeyIdx; // TODO(hlundin) populate this
vp8Info->nonReference = (pkt.data.frame.flags & VPX_FRAME_IS_DROPPABLE) != 0;
#if WEBRTC_LIBVPX_VERSION >= 971
#if WEBRTC_LIBVPX_VERSION >= 971 && WEBRTC_LIBVPX_TEMPORAL_LAYERS != 0
temporal_layers_->PopulateCodecSpecific(
(pkt.data.frame.flags & VPX_FRAME_IS_KEY) ? true : false, vp8Info,
timestamp);
@ -687,7 +687,7 @@ int VP8DecoderImpl::Decode(const EncodedImage& input_image,
}
#endif
#if (WEBRTC_LIBVPX_VERSION >= 971) && !defined(WEBRTC_ARCH_ARM)
#if (WEBRTC_LIBVPX_VERSION >= 1000) && !defined(WEBRTC_ARCH_ARM)
if (!mfqe_enabled_ && codec_specific_info &&
codec_specific_info->codecSpecific.VP8.temporalIdx > 0) {
// Enable MFQE if we are receiving layers.

View File

@ -73,6 +73,7 @@
'conditions': [
['os_posix==1 and OS!="mac"', {
'cflags': [ '-msse2', ],
'cflags_mozilla': [ '-msse2', ],
}],
['OS=="mac"', {
'xcode_settings': {

View File

@ -452,13 +452,13 @@ void TraceImpl::AddMessageToList(
length_[active_queue_][idx] = length;
memcpy(message_queue_[active_queue_][idx], trace_message, length);
if (next_free_idx_[active_queue_] == WEBRTC_TRACE_MAX_QUEUE - 1) {
if (next_free_idx_[active_queue_] >= WEBRTC_TRACE_MAX_QUEUE - 1) {
// Logging more messages than can be worked off. Log a warning.
const char warning_msg[] = "WARNING MISSING TRACE MESSAGES\n";
level_[active_queue_][next_free_idx_[active_queue_]] = kTraceWarning;
length_[active_queue_][next_free_idx_[active_queue_]] = strlen(warning_msg);
memcpy(message_queue_[active_queue_][next_free_idx_[active_queue_]],
warning_msg, strlen(warning_msg));
level_[active_queue_][WEBRTC_TRACE_MAX_QUEUE-1] = kTraceWarning;
length_[active_queue_][WEBRTC_TRACE_MAX_QUEUE-1] = strlen(warning_msg);
memcpy(message_queue_[active_queue_][WEBRTC_TRACE_MAX_QUEUE-1],
warning_msg, length_[active_queue_][WEBRTC_TRACE_MAX_QUEUE-1]);
next_free_idx_[active_queue_]++;
}
}

View File

@ -18,8 +18,6 @@
#include <time.h>
#ifdef WEBRTC_ANDROID
#include <pthread.h>
#else
#include <iostream>
#endif
#if defined(_DEBUG)

View File

@ -53,10 +53,70 @@
#define WEBRTC_ARCH_32_BITS
#define WEBRTC_ARCH_LITTLE_ENDIAN
#define WEBRTC_LITTLE_ENDIAN
#elif defined(__MIPSEL__)
#define WEBRTC_ARCH_32_BITS
#elif defined(__powerpc64__)
#define WEBRTC_ARCH_PPC64 1
#define WEBRTC_ARCH_64_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#elif defined(__ppc__) || defined(__powerpc__)
#define WEBRTC_ARCH_PPC 1
#define WEBRTC_ARCH_32_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#elif defined(__sparc64__)
#define WEBRTC_ARCH_SPARC 1
#define WEBRTC_ARCH_64_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#elif defined(__sparc__)
#define WEBRTC_ARCH_SPARC 1
#define WEBRTC_ARCH_32_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#elif defined(__mips__)
#define WEBRTC_ARCH_MIPS 1
#if defined(_ABI64) && _MIPS_SIM == _ABI64
#define WEBRTC_ARCH_64_BITS 1
#else
#define WEBRTC_ARCH_32_BITS 1
#endif
#if defined(__MIPSEB__)
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#else
#define WEBRTC_ARCH_LITTLE_ENDIAN
#define WEBRTC_LITTLE_ENDIAN
#endif
#elif defined(__hppa__)
#define WEBRTC_ARCH_HPPA 1
#define WEBRTC_ARCH_32_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#elif defined(__ia64__)
#define WEBRTC_ARCH_IA64 1
#define WEBRTC_ARCH_64_BITS 1
#define WEBRTC_ARCH_LITTLE_ENDIAN
#define WEBRTC_LITTLE_ENDIAN
#elif defined(__s390x__)
#define WEBRTC_ARCH_S390X 1
#define WEBRTC_ARCH_64_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#elif defined(__s390__)
#define WEBRTC_ARCH_S390 1
#define WEBRTC_ARCH_32_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#elif defined(__alpha__)
#define WEBRTC_ARCH_ALPHA 1
#define WEBRTC_ARCH_64_BITS 1
#define WEBRTC_ARCH_LITTLE_ENDIAN
#define WEBRTC_LITTLE_ENDIAN
#elif defined(__avr32__)
#define WEBRTC_ARCH_AVR32 1
#define WEBRTC_ARCH_32_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#else
#error Please add support for your architecture in typedefs.h
#endif

View File

@ -216,11 +216,13 @@ int VideoEngine::SetAndroidObjects(void* javaVM, void* javaContext) {
"Could not set capture Android VM");
return -1;
}
#ifdef WEBRTC_INCLUDE_INTERNAL_VIDEO_RENDER
if (SetRenderAndroidVM(javaVM) != 0) {
WEBRTC_TRACE(kTraceError, kTraceVideo, g_vie_active_instance_counter,
"Could not set render Android VM");
return -1;
}
#endif
return 0;
#else
WEBRTC_TRACE(kTraceError, kTraceVideo, g_vie_active_instance_counter,

View File

@ -118,8 +118,8 @@ public:
virtual int GetOutputVolumePan(int channel, float& left, float& right) = 0;
protected:
VoEVolumeControl() {};
virtual ~VoEVolumeControl() {};
VoEVolumeControl() {}
virtual ~VoEVolumeControl() {}
};
} // namespace webrtc

View File

@ -78,12 +78,17 @@ public:
virtual int GetSecondarySendCodec(int channel, CodecInst& codec);
static void ACMToExternalCodecRepresentation(CodecInst& toInst,
const CodecInst& fromInst);
static void ExternalToACMCodecRepresentation(CodecInst& toInst,
const CodecInst& fromInst);
protected:
VoECodecImpl(voe::SharedData* shared);
virtual ~VoECodecImpl();
private:
voe::SharedData* _shared;
};

View File

@ -33,6 +33,9 @@
'include',
],
},
'defines': [
'WEBRTC_EXTERNAL_TRANSPORT',
],
'sources': [
'../common_types.h',
'../engine_configurations.h',

View File

@ -358,7 +358,10 @@ namespace webrtc
// Always excluded for Android builds
#undef WEBRTC_CODEC_ISAC
#undef WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT
// We need WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT to make things work on Android.
// Motivation for the commented-out undef below is unclear.
//
// #undef WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT
#undef WEBRTC_CONFERENCING
#undef WEBRTC_TYPING_DETECTION
@ -378,10 +381,10 @@ namespace webrtc
#define WEBRTC_VOICE_ENGINE_AGC_DEFAULT_MODE \
GainControl::kAdaptiveDigital
#define ANDROID_NOT_SUPPORTED(stat) \
stat.SetLastError(VE_FUNC_NOT_SUPPORTED, kTraceError, \
"API call not supported"); \
return -1;
// This macro used to cause the calling function to set an error code and return.
// However, not doing that seems to cause the unit tests to pass / behave reasonably,
// so it's disabled for now; see bug 819856.
#define ANDROID_NOT_SUPPORTED(stat)
#else // LINUX PC
// ----------------------------------------------------------------------------

View File

@ -47,5 +47,5 @@ WEBRTC_CONFIG_INCLUDED = 1
EXTRA_DEPS += $(topsrcdir)/media/webrtc/webrtc-config.mk
LOCAL_INCLUDES += \
-I$(topsrcdir)/media/webrtc/trunk/src \
-I$(topsrcdir)/media/webrtc/trunk/webrtc \
$(NULL)

View File

@ -8,24 +8,32 @@
# "find . -name '*.gyp' | xargs touch"
{
'variables': {
'build_with_mozilla': 1,
'build_with_chromium': 0,
# basic stuff for everything
'include_internal_video_render': 0,
'clang_use_chrome_plugins': 0,
'enable_protobuf': 0,
'include_pulse_audio': 0,
'include_tests': 0,
'use_system_libjpeg': 1,
'use_system_libvpx': 1,
# use_system_lib* still seems to be in use in trunk/build
'use_system_libjpeg': 0,
'use_system_libvpx': 0,
'build_libjpeg': 0,
'build_libvpx': 0,
# (for vp8) chromium sets to 0 also
'use_temporal_layers': 0,
# Creates AEC internal sample dump files in current directory
# 'aec_debug_dump': 1,
# codec enable/disables:
# Note: if you change one here, you must modify shared_libs.mk!
'codec_g711_enable': 1,
'codec_opus_enable': 1,
'codec_g722_enable': 0,
'codec_ilbc_enable': 0,
'codec_isac_enable': 0,
'codec_pcm16b_enable': 1,
'include_g711': 1,
'include_opus': 1,
'include_g722': 0,
'include_ilbc': 0,
'include_isac': 0,
'include_pcm16b': 1,
}
}

View File

@ -5,7 +5,6 @@
# First, get a new copy of the tree to play with
# They both want to be named 'trunk'...
#cd media/webrtc
mkdir webrtc_update
cd webrtc_update
@ -13,9 +12,20 @@ cd webrtc_update
gclient config --name trunk http://webrtc.googlecode.com/svn/trunk/peerconnection
gclient sync --force
if [ $2 ] ; then
if [ $3 ] ; then
echo
else
sed -i -e "s/\"webrtc_revision\":.*,/\"webrtc_revision\": \"$1\",/" -e "s/\"libjingle_revision\":.*,/\"libjingle_revision\": \"$2\",/" trunk/DEPS
gclient sync --force
fi
fi
if [ $3 ] ; then
echo "Updating from $3..."
rm -rf trunk/third_party/webrtc
mkdir trunk/src
cp -a $3/webrtc/* trunk/src
fi
cd trunk
@ -60,16 +70,16 @@ echo "You probably want to do these from another shell so you can look at these"
hg commit -m "Webrtc import $revision"
# webrtc-import-last is auto-updated (bookmark)
echo ""
hg update --clean webrtc-pending
hg merge -r webrtc-import-last
hg commit -m 'merge latest import to pending, $revision'
#echo ""
#hg update --clean webrtc-pending
#hg merge -r webrtc-import-last
#hg commit -m "merge latest import to pending, $revision"
# webrtc-pending is auto-updated (bookmark)
echo ""
hg update --clean webrtc-trim
hg merge -r webrtc-pending
hg commit -m "merge latest import to trim, $revision"
echo "hg update --clean webrtc-trim"
echo "hg merge -r webrtc-import-last"
echo "hg commit -m 'merge latest import to trim, $revision'"
# webrtc-trim is auto-updated (bookmark)
# commands to pull - never do more than echo them for the user

View File

@ -1,3 +1,3 @@
#define WEBRTC_SVNVERSION 2820
#define WEBRTC_PULL_DATE "Mon Sep 24 22:53:49 EDT 2012"
#define WEBRTC_SVNVERSION 3371
#define WEBRTC_PULL_DATE "Mon Jan 14 02:00:00 EDT 2012"