Index: chrome/test/functional/webrtc_write_wsh.py |
=================================================================== |
--- chrome/test/functional/webrtc_write_wsh.py (revision 261231) |
+++ chrome/test/functional/webrtc_write_wsh.py (working copy) |
@@ -1,76 +0,0 @@ |
-# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
-# |
-# This module is handler for incoming data to the pywebsocket standalone server |
-# (source is in http://code.google.com/p/pywebsocket/source/browse/trunk/src/). |
-# It follows the conventions of the pywebsocket server and in our case receives |
-# and stores incoming frames to disk. |
- |
-import Queue |
-import os |
-import sys |
-import threading |
- |
-_NUMBER_OF_WRITER_THREADS = 10 |
- |
-_HOME_ENV_NAME = 'HOMEPATH' if 'win32' == sys.platform else 'HOME' |
-_WORKING_DIR = os.path.join(os.environ[_HOME_ENV_NAME], 'webrtc_video_quality') |
- |
-# I couldn't think of other way to handle this but through a global variable |
-g_frame_number_counter = 0 |
-g_frames_queue = Queue.Queue() |
- |
- |
-def web_socket_do_extra_handshake(request): |
- pass # Always accept. |
- |
- |
-def web_socket_transfer_data(request): |
- while True: |
- data = request.ws_stream.receive_message() |
- if data is None: |
- return |
- |
- # We assume we will receive only frames, i.e. binary data |
- global g_frame_number_counter |
- frame_number = str(g_frame_number_counter) |
- g_frame_number_counter += 1 |
- g_frames_queue.put((frame_number, data)) |
- |
- |
-class FrameWriterThread(threading.Thread): |
- """Writes received frames to disk. |
- |
- The frames are named in the format frame_xxxx, where xxxx is the 0-padded |
- frame number. The frames and their numbers are obtained from a synchronized |
- queue. The frames are written in the directory specified by _WORKING_DIR. |
- """ |
- def __init__(self, queue): |
- threading.Thread.__init__(self) |
- self._queue = queue |
- |
- def run(self): |
- while True: |
- frame_number, frame_data = self._queue.get() |
- file_name = 'frame_' + frame_number.zfill(4) |
- file_name = os.path.join(_WORKING_DIR, file_name) |
- frame = open(file_name, "wb") |
- frame.write(frame_data) |
- frame.close() |
- self._queue.task_done() |
- |
- |
-def start_threads(): |
- for i in range(_NUMBER_OF_WRITER_THREADS): |
- t = FrameWriterThread(g_frames_queue) |
- t.setDaemon(True) |
- t.start() |
- g_frames_queue.join() |
- |
- |
-# This handler's entire code is imported as 'it is' and then incorporated in the |
-# code of the standalone pywebsocket server. If we put this start_threads() call |
-# inside a if __name__ == '__main__' clause it wouldn't run this code at all |
-# (tested). |
-start_threads() |