Merge branch 'master' of github.com:bigbluebutton/bigbluebutton

This commit is contained in:
Richard Alam 2012-07-30 22:00:00 +00:00
commit 0f591f9d34
8 changed files with 270 additions and 190 deletions

View File

@ -71,6 +71,9 @@ Author: Jesus Federico <jesus@123it.ca>
<%@ include file="bbb_jopenid.jsp"%>
<%
String urlPath = request.getRequestURI();
String urlHost = new URL(BigBlueButtonURL).getProtocol() + "://" + new URL(BigBlueButtonURL).getAuthority();
if (request.getParameterMap().isEmpty()) {
//
// Assume we want to create a meeting
@ -114,9 +117,9 @@ if (request.getParameterMap().isEmpty()) {
</FORM>
<%
} else if (request.getParameter("connect")!=null ) {
manager.setRealm("http://demo.bigbluebutton.org");
manager.setReturnTo("http://demo.bigbluebutton.org/demo/demo_openid.jsp");
} else if (request.getParameter("connect")!=null ) {
manager.setRealm(urlHost);
manager.setReturnTo(urlHost + urlPath);
Endpoint endpoint = null;
if (request.getParameter("connect").equals("google")) {

16
bigbluebutton-client/build.xml Executable file → Normal file
View File

@ -129,7 +129,7 @@
<!-- Invoke MXMLC -->
<mxmlc output="${OUTPUT_DIR}/locale/@{locale}_resources.swf">
<locale>@{locale}</locale>
<target-player>10.3.0</target-player>
<target-player>11</target-player>
<source-path path-element="locale/{locale}"/>
<!--
@ -236,15 +236,15 @@
<build-module src="${SRC_DIR}" target="${LAYOUT}" />
</target>
<!-- just a grouping of modules to compile , build-breakout-->
<!-- just a grouping of modules to compile -->
<target name="build-main-chat-viewers-listeners-present"
depends="build-bbb-main, build-bbb-main-test, build-chat, build-viewers, build-listeners, build-present, build-layout"
depends="build-bbb-main, build-bbb-main-test, build-chat, build-viewers, build-listeners, build-present, build-breakout, build-layout"
description="Compile main, chat, viewers, listeners, present, breakout modules">
</target>
<!-- just a grouping of modules to compile , build-dyn, build-classroom-audio, build-settings-->
<!-- just a grouping of modules to compile -->
<target name="build-deskshare-phone-video-whiteboard-dyn"
depends="build-deskshare, build-phone, build-video, build-videodock, build-whiteboard"
depends="build-deskshare, build-phone, build-video, build-videodock, build-whiteboard, build-dyn, build-classroom-audio, build-settings"
description="Compile deskshare, phone, video, whiteboard, dynamic info modules">
</target>
@ -255,7 +255,7 @@
<attribute name="src" default="${SRC_DIR}" description="Path to the module to compile" />
<sequential>
<mxmlc file="@{src}/@{target}.mxml" output="${OUTPUT_DIR}/@{target}.swf" debug="false" mxml.compatibility-version="3.0.0" swf-version="13" optimize="true" link-report="linker-report.xml">
<target-player>10.3.0</target-player>
<target-player>11</target-player>
<load-config filename="@{flex}/frameworks/flex-config.xml" />
<source-path path-element="@{flex}/frameworks" />
@ -294,7 +294,7 @@
<attribute name="src" default="${SRC_DIR}" description="Path to the module to compile" />
<sequential>
<mxmlc file="@{src}/@{target}.mxml" output="${OUTPUT_DIR}/@{target}.swf" debug="false" mxml.compatibility-version="3.0.0" swf-version="13">
<target-player>10.3.0</target-player>
<target-player>11</target-player>
<load-config filename="@{flex}/frameworks/flex-config.xml" />
<source-path path-element="@{flex}/frameworks" />
<static-link-runtime-shared-libraries>${STATIC_RSL}</static-link-runtime-shared-libraries>
@ -321,7 +321,7 @@
<attribute name="src" default="${SRC_DIR}" description="Path to the module to compile" />
<sequential>
<mxmlc file="@{src}/@{target}.mxml" output="${OUTPUT_DIR}/@{target}.swf" debug="false" mxml.compatibility-version="3.0.0" swf-version="13" optimize="true" load-externs="linker-report.xml">
<target-player>10.3.0</target-player>
<target-player>11</target-player>
<load-config filename="@{flex}/frameworks/flex-config.xml" />
<source-path path-element="@{flex}/frameworks" />
<static-link-runtime-shared-libraries>${STATIC_RSL}</static-link-runtime-shared-libraries>

251
bigbluebutton-client/resources/config.xml.template Executable file → Normal file
View File

@ -1,123 +1,128 @@
<?xml version="1.0" ?>
<config>
<localeversion suppressWarning="false">0.8</localeversion>
<version>VERSION</version>
<help url="http://HOST/help.html"/>
<porttest host="HOST" application="video"/>
<application uri="rtmp://HOST/bigbluebutton" host="http://HOST/bigbluebutton/api/enter" />
<language userSelectionEnabled="true" />
<skinning enabled="false" url="branding/css/theme.css.swf" />
<layout showLogButton="false" showVideoLayout="false" showResetLayout="true" showToolbar="true" showHelpButton="true" showLogoutWindow="true"/>
<modules>
<module name="ChatModule" url="ChatModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
dependsOn="ViewersModule"
translationOn="false"
translationEnabled="false"
privateEnabled="true"
position="top-right"
/>
<module name="ViewersModule" url="ViewersModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
host="http://HOST/bigbluebutton/api/enter"
allowKickUser="false"
windowVisible="true"
/>
<module name="ListenersModule" url="ListenersModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
recordingHost="http://HOST"
windowVisible="true"
position="bottom-left"
/>
<module name="DeskShareModule"
url="DeskShareModule.swf?v=VERSION"
uri="rtmp://HOST/deskShare"
autoStart="false"
/>
<module name="PhoneModule" url="PhoneModule.swf?v=VERSION"
uri="rtmp://HOST/sip"
autoJoin="true"
skipCheck="false"
showButton="true"
enabledEchoCancel="true"
dependsOn="ViewersModule"
/>
<module name="VideoconfModule" url="VideoconfModule.swf?v=VERSION"
uri="rtmp://HOST/video"
dependson = "ViewersModule"
videoQuality = "100"
presenterShareOnly = "false"
resolutions = "320x240,640x480,1280x720"
autoStart = "false"
showButton = "true"
showCloseButton = "true"
publishWindowVisible = "true"
viewerWindowMaxed = "false"
viewerWindowLocation = "top"
camKeyFrameInterval = "30"
camModeFps = "10"
camQualityBandwidth = "0"
camQualityPicture = "90"
enableH264 = "false"
h264Level = "2.1"
h264Profile = "main"
/>
<module name="WhiteboardModule" url="WhiteboardModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
dependsOn="PresentModule"
/>
<module name="PresentModule" url="PresentModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
host="http://HOST"
showPresentWindow="true"
showWindowControls="true"
dependsOn="ViewersModule"
/>
<module name="VideodockModule" url="VideodockModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
dependsOn="VideoconfModule, ViewersModule"
autoDock="true"
maximizeWindow="false"
position="bottom-right"
width="172"
height="179"
layout="smart"
oneAlwaysBigger="false"
/>
<module name="LayoutModule" url="LayoutModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
layoutConfig="conf/layout.xml"
enableEdit="true"
/>
<!-- new module in development:
<module name="DynamicInfoModule" url="DynamicInfoModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
host="http://HOST"
infoURL="http://HOST/client/conf/example-info-data.xml?user={userID}&role={role}&meetingID={meetingID}"
/>
-->
<!--<module name="ExampleChatModule" url="ExampleChatModule.swf?v=56"
uri="rtmp://HOST/bigbluebutton"
host="http://HOST"
/>-->
<!--<module name="SharedNotesModule" url="SharedNotesModule.swf?v=VERSION"
uri="http://192.168.0.225/bigbluebutton"
dependsOn="ViewersModule"
/>-->
</modules>
</config>
<?xml version="1.0" ?>
<config>
<localeversion suppressWarning="false">0.8</localeversion>
<version>VERSION</version>
<help url="http://HOST/help.html"/>
<porttest host="HOST" application="video"/>
<application uri="rtmp://HOST/bigbluebutton" host="http://HOST/bigbluebutton/api/enter" />
<language userSelectionEnabled="true" />
<skinning enabled="false" url="branding/css/theme.css.swf" />
<layout showLogButton="false" showVideoLayout="false" showResetLayout="true" showToolbar="true" showHelpButton="true" showLogoutWindow="true"/>
<modules>
<module name="ChatModule" url="ChatModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
dependsOn="ViewersModule"
translationOn="false"
translationEnabled="false"
privateEnabled="true"
position="top-right"
/>
<module name="ViewersModule" url="ViewersModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
host="http://HOST/bigbluebutton/api/enter"
allowKickUser="false"
windowVisible="true"
/>
<module name="ListenersModule" url="ListenersModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
recordingHost="http://HOST"
windowVisible="true"
position="bottom-left"
/>
<module name="DeskShareModule"
url="DeskShareModule.swf?v=VERSION"
uri="rtmp://HOST/deskShare"
autoStart="false"
/>
<module name="PhoneModule" url="PhoneModule.swf?v=VERSION"
uri="rtmp://HOST/sip"
autoJoin="true"
skipCheck="false"
showButton="true"
enabledEchoCancel="true"
dependsOn="ViewersModule"
/>
<module name="VideoconfModule" url="VideoconfModule.swf?v=VERSION"
uri="rtmp://HOST/video"
dependson = "ViewersModule"
videoQuality = "100"
presenterShareOnly = "false"
resolutions = "320x240,640x480,1280x720"
autoStart = "false"
showButton = "true"
showCloseButton = "true"
publishWindowVisible = "true"
viewerWindowMaxed = "false"
viewerWindowLocation = "top"
camKeyFrameInterval = "30"
camModeFps = "10"
camQualityBandwidth = "0"
camQualityPicture = "90"
smoothVideo="false"
applyConvolutionFilter="false"
convolutionFilter="-1, 0, -1, 0, 6, 0, -1, 0, -1"
filterBias="0"
filterDivisor="4"
enableH264 = "true"
h264Level = "2.1"
h264Profile = "main"
/>
<module name="WhiteboardModule" url="WhiteboardModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
dependsOn="PresentModule"
/>
<module name="PresentModule" url="PresentModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
host="http://HOST"
showPresentWindow="true"
showWindowControls="true"
dependsOn="ViewersModule"
/>
<module name="VideodockModule" url="VideodockModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
dependsOn="VideoconfModule, ViewersModule"
autoDock="true"
maximizeWindow="false"
position="bottom-right"
width="172"
height="179"
layout="smart"
oneAlwaysBigger="false"
/>
<module name="LayoutModule" url="LayoutModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
layoutConfig="conf/layout.xml"
enableEdit="true"
/>
<!-- new module in development:
<module name="DynamicInfoModule" url="DynamicInfoModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
host="http://HOST"
infoURL="http://HOST/client/conf/example-info-data.xml?user={userID}&role={role}&meetingID={meetingID}"
/>
-->
<!--<module name="ExampleChatModule" url="ExampleChatModule.swf?v=56"
uri="rtmp://HOST/bigbluebutton"
host="http://HOST"
/>-->
<!--<module name="SharedNotesModule" url="SharedNotesModule.swf?v=VERSION"
uri="http://192.168.0.225/bigbluebutton"
dependsOn="ViewersModule"
/>-->
</modules>
</config>

84
bigbluebutton-client/resources/prod/BigBlueButton.html Executable file → Normal file
View File

@ -1,42 +1,42 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css" media="screen">
html, body, #content { height:100%; }
body { margin:0; padding:0; overflow:hidden; }
#altContent { /* style alt content */ }
</style>
<script type="text/javascript" src="swfobject/swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("BigBlueButton", "10.3.0", "expressInstall.swf");
</script>
<script src="lib/jquery-1.5.1.min.js" language="javascript"></script>
<script src="lib/bigbluebutton.js" language="javascript"></script>
<script src="lib/bbb_localization.js" language="javascript"></script>
<script src="lib/bbb_blinker.js" language="javascript"></script>
<script src="lib/bbb_deskshare.js" language="javascript"></script>
</head>
<body>
<div id="content">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="BigBlueButton" name="BigBlueButton" align="middle">
<param name="movie" value="BigBlueButton.swf?v=VERSION" />
<param name="quality" value="high" />
<param name="allowfullscreen" value="true" />
<param name="bgcolor" value="#869ca7" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="BigBlueButton.swf?v=VERSION" width="100%" height="100%" align="middle">
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css" media="screen">
html, body, #content { height:100%; }
body { margin:0; padding:0; overflow:hidden; }
#altContent { /* style alt content */ }
</style>
<script type="text/javascript" src="swfobject/swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("BigBlueButton", "11", "expressInstall.swf");
</script>
<script src="lib/jquery-1.5.1.min.js" language="javascript"></script>
<script src="lib/bigbluebutton.js" language="javascript"></script>
<script src="lib/bbb_localization.js" language="javascript"></script>
<script src="lib/bbb_blinker.js" language="javascript"></script>
<script src="lib/bbb_deskshare.js" language="javascript"></script>
</head>
<body>
<div id="content">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="BigBlueButton" name="BigBlueButton" align="middle">
<param name="movie" value="BigBlueButton.swf?v=VERSION" />
<param name="quality" value="high" />
<param name="allowfullscreen" value="true" />
<param name="bgcolor" value="#869ca7" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="BigBlueButton.swf?v=VERSION" width="100%" height="100%" align="middle">
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</body>
</html>

View File

@ -32,17 +32,18 @@ package org.bigbluebutton.modules.videoconf.business
import org.bigbluebutton.common.LogUtil;
import org.bigbluebutton.core.managers.UserManager;
import org.bigbluebutton.core.BBB;
import org.bigbluebutton.main.model.users.BBBUser;
import org.bigbluebutton.main.model.users.events.StreamStartedEvent;
import org.bigbluebutton.modules.videoconf.events.StartBroadcastEvent;
import org.bigbluebutton.modules.videoconf.model.VideoConfOptions;
/** Uncomment if you want to build support for H264. But you need at least FP 11. (ralam july 23, 2011)
// Uncomment if you want to build support for H264. But you need at least FP 11. (ralam july 23, 2011)
import flash.media.H264VideoStreamSettings;
import flash.media.H264Profile;
import flash.media.H264Level;
**/
public class VideoProxy
{
@ -135,8 +136,11 @@ package org.bigbluebutton.modules.videoconf.business
ns.addEventListener( AsyncErrorEvent.ASYNC_ERROR, onAsyncError );
ns.client = this;
ns.attachCamera(e.camera);
/* Uncomment if you want to build support for H264. But you need at least FP 11. (ralam july 23, 2011)
if (Capabilities.version.search("11,0") != -1) {
// Uncomment if you want to build support for H264. But you need at least FP 11. (ralam july 23, 2011)
// if (Capabilities.version.search("11,0") != -1) {
if ((BBB.getFlashPlayerVersion() >= 11) && videoOptions.enableH264) {
// if (BBB.getFlashPlayerVersion() >= 11) {
LogUtil.info("Using H264 codec for video.");
var h264:H264VideoStreamSettings = new H264VideoStreamSettings();
var h264profile:String = H264Profile.MAIN;
if (videoOptions.h264Profile != "main") {
@ -180,7 +184,7 @@ package org.bigbluebutton.modules.videoconf.business
h264.setProfileLevel(h264profile, h264Level);
ns.videoStreamSettings = h264;
}
*/
ns.publish(e.stream);
}
@ -221,4 +225,4 @@ package org.bigbluebutton.modules.videoconf.business
}
}
}
}

View File

@ -32,7 +32,25 @@ package org.bigbluebutton.modules.videoconf.model
public var camQualityBandwidth:Number = 0;
[Bindable]
public var h264Level:String = "4.1";
public var smoothVideo:Boolean = false;
[Bindable]
public var applyConvolutionFilter:Boolean = false;
[Bindable]
public var convolutionFilter:Array = [-1, 0, -1, 0, 6, 0, -1, 0, -1];
[Bindable]
public var filterBias:Number = 0;
[Bindable]
public var filterDivisor:Number = 4;
[Bindable]
public var enableH264:Boolean = false;
[Bindable]
public var h264Level:String = "2.1";
[Bindable]
public var h264Profile:String = "main";
@ -76,6 +94,28 @@ package org.bigbluebutton.modules.videoconf.model
if (vxml.@camQualityPicture != undefined) {
camQualityPicture = Number(vxml.@camQualityPicture.toString());
}
if (vxml.@smoothVideo != undefined) {
smoothVideo = (vxml.@smoothVideo.toString().toUpperCase() == "TRUE") ? true : false;
}
if (vxml.@applyConvolutionFilter != undefined) {
applyConvolutionFilter = (vxml.@applyConvolutionFilter.toString().toUpperCase() == "TRUE") ? true : false;
}
if (vxml.@convolutionFilter != undefined) {
var f:Array = vxml.@convolutionFilter.split(",");
var fint:Array = new Array();
for (var i:int=0; i < f.length; i++) {
convolutionFilter[i] = Number(f[i]);
}
}
if (vxml.@filterBias != undefined) {
filterBias = Number(vxml.@filterBias.toString());
}
if (vxml.@filterDivisor != undefined) {
filterDivisor = Number(vxml.@filterDivisor.toString());
}
if (vxml.@enableH264 != undefined) {
enableH264 = (vxml.@enableH264.toString().toUpperCase() == "TRUE") ? true : false;
}
if (vxml.@h264Level != undefined) {
h264Level = vxml.@h264Level.toString();
}
@ -85,4 +125,4 @@ package org.bigbluebutton.modules.videoconf.model
}
}
}
}
}

View File

@ -111,6 +111,24 @@
_video.height = originalHeight = Number(res[1]);
setAspectRatio(Number(res[0]), Number(res[1]));
_video.attachNetStream(ns);
if (videoOptions.smoothVideo) {
LogUtil.debug("Smoothing video.")
_video.smoothing = true;
}
if (videoOptions.applyConvolutionFilter) {
var filter = new flash.filters.ConvolutionFilter();
filter.matrixX = 3;
filter.matrixY = 3;
LogUtil.debug("Applying convolution filter =[" + videoOptions.convolutionFilter + "]");
filter.matrix = videoOptions.convolutionFilter;
filter.bias = videoOptions.filterBias;
filter.divisor = videoOptions.filterDivisor;
_video.filters = [filter];
}
ns.play(stream);
this.streamName = stream;

View File

@ -661,15 +661,25 @@ if [ $SETUPDEV ]; then
fi
if [ ! -f $BASE/flex-4.5.0.20967/frameworks/libs/player/10.3/playerglobal.swc ]; then
mkdir -p $BASE/flex-4.5.0.20967/frameworks/libs/player/10.3
cd $BASE/flex-4.5.0.20967/frameworks/libs/player/10.3
if [ ! -f playerglobal10_3.swc ]; then
wget http://fpdownload.macromedia.com/pub/flashplayer/updaters/10/playerglobal10_3.swc
if [ ! -f $BASE/flex-4.5.0.20967/frameworks/libs/player/11.2/playerglobal.swc ]; then
mkdir -p $BASE/flex-4.5.0.20967/frameworks/libs/player/11.2
cd $BASE/flex-4.5.0.20967/frameworks/libs/player/11.2
if [ ! -f playerglobal11_2.swc ]; then
wget http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_2.swc
fi
mv -f playerglobal10_3.swc playerglobal.swc
mv -f playerglobal11_2.swc playerglobal.swc
fi
# if [ ! -f $BASE/flex-4.5.0.20967/frameworks/libs/player/10.3/playerglobal.swc ]; then
# mkdir -p $BASE/flex-4.5.0.20967/frameworks/libs/player/10.3
# cd $BASE/flex-4.5.0.20967/frameworks/libs/player/10.3
# if [ ! -f playerglobal10_3.swc ]; then
# wget http://fpdownload.macromedia.com/pub/flashplayer/updaters/10/playerglobal10_3.swc
# fi
# mv -f playerglobal10_3.swc playerglobal.swc
# fi
if ! grep -q GROOVY_HOME ~/.profile; then
echo "
#