Add audio/video only option in apprtc
ISSUE = issue 1507
TEST =
Review URL: https://webrtc-codereview.appspot.com/1216007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3692 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/samples/js/apprtc/apprtc.py b/samples/js/apprtc/apprtc.py
index 19b270b..4de7a05 100644
--- a/samples/js/apprtc/apprtc.py
+++ b/samples/js/apprtc/apprtc.py
@@ -119,25 +119,34 @@
new_message.put()
logging.info('Saved message for user ' + user)
-def make_media_constraints_by_resolution(min_re, max_re):
- constraints = { 'optional': [], 'mandatory': {} }
- if min_re:
- min_sizes = min_re.split('x')
- if len(min_sizes) == 2:
- constraints['mandatory']['minWidth'] = min_sizes[0]
- constraints['mandatory']['minHeight'] = min_sizes[1]
- else:
- logging.info('Ignored invalid min_re: ' + min_re);
+def make_media_constraints(media, min_re, max_re):
+ video_constraints = { 'optional': [], 'mandatory': {} }
+ media_constraints = { 'video':video_constraints, 'audio':True }
- if max_re:
- max_sizes = max_re.split('x')
- if len(max_sizes) == 2:
- constraints['mandatory']['maxWidth'] = max_sizes[0]
- constraints['mandatory']['maxHeight'] = max_sizes[1]
- else:
- logging.info('Ignored invalid max_re: ' + max_re);
+ # Media: audio:audio only; video:video only; (default):both.
+ if media.lower() == 'audio':
+ media_constraints['video'] = False
+ elif media.lower() == 'video':
+ media_constraints['audio'] = False
- return constraints
+ if media.lower() != 'audio' :
+ if min_re:
+ min_sizes = min_re.split('x')
+ if len(min_sizes) == 2:
+ video_constraints['mandatory']['minWidth'] = min_sizes[0]
+ video_constraints['mandatory']['minHeight'] = min_sizes[1]
+ else:
+ logging.info('Ignored invalid min_re: ' + min_re);
+ if max_re:
+ max_sizes = max_re.split('x')
+ if len(max_sizes) == 2:
+ video_constraints['mandatory']['maxWidth'] = max_sizes[0]
+ video_constraints['mandatory']['maxHeight'] = max_sizes[1]
+ else:
+ logging.info('Ignored invalid max_re: ' + max_re);
+ media_constraints['video'] = video_constraints
+
+ return media_constraints
def make_pc_constraints(compat):
constraints = { 'optional': [] }
@@ -309,6 +318,7 @@
if hd_video.lower() == 'true':
min_re = '1280x720'
ts_pwd = self.request.get('tp')
+ media = self.request.get('media')
# set compat to true by default.
compat = 'true'
if self.request.get('compat'):
@@ -362,13 +372,13 @@
logging.info('Room ' + room_key + ' is full')
return
- room_link = base_url + '/?r=' + room_key
+ room_link = base_url + '?r=' + room_key
room_link = append_url_arguments(self.request, room_link)
token = create_channel(room, user, token_timeout)
pc_config = make_pc_config(stun_server, turn_server, ts_pwd)
pc_constraints = make_pc_constraints(compat)
offer_constraints = make_offer_constraints(compat)
- media_constraints = make_media_constraints_by_resolution(min_re, max_re)
+ media_constraints = make_media_constraints(media, min_re, max_re)
template_values = {'token': token,
'me': user,
'room_key': room_key,