普通文本  |  60行  |  2.93 KB

# Copyright (c) 2017 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import logging

from autotest_lib.server.cros import cfm_jmidata_v3_helper


def GetDataFromLogs(testcase, data_type, log_lines):
    """Returns a list of data_type from JMI data in javascript log.

    @param testcase: Testcase instance.
    @param data_type: Type of data to be retrieved (audio sent/audio received
            etc. See above for complete list.).
    @param log_lines: log_file to be parsed.

    @return A list of data_type from javascript log.
    """
    helper = cfm_jmidata_v3_helper.JMIDataV3Helper(log_lines)
    data_type_to_func_map = {
        'video_sent_bytes': helper.GetVideoSentBytesList,
        'video_received_bytes': helper.GetVideoReceivedBytesList,
        'audio_sent_bytes': helper.GetAudioSentBytesList,
        'audio_received_bytes': helper.GetAudioReceivedBytesList,
        'audio_received_energy_level': helper.GetAudioReceivedEnergyList,
        'audio_sent_energy_level': helper.GetAudioSentEnergyList,
        'framerate_received': helper.GetVideoIncomingFramerateReceivedList,
        'framerate_sent': helper.GetVideoOutgoingFramerateSentList,
        'framerate_decoded': helper.GetVideoIncomingFramerateDecodedList,
        'frames_decoded': helper.GetVideoIncomingFramesDecodedList,
        'frames_encoded': helper.GetVideoOutgoingFramesEncodedList,
        'average_encode_time': helper.GetVideoEncodeTimeList,
        'framerate_to_renderer': helper.GetVideoIncomingFramerateList,
        'framerate_outgoing': helper.GetVideoOutgoingFramerateInputList,
        'video_sent_frame_width': helper.GetVideoSentFrameWidthList,
        'video_received_frame_width': helper.GetVideoReceivedFrameWidthList,
        'video_sent_frame_height': helper.GetVideoSentFrameHeightList,
        'video_received_frame_height': helper.GetVideoReceivedFrameHeightList,
        'cpu_adaptation': helper.GetCPULimitedResolutionList,
        'bandwidth_adaptation': helper.GetBandwidthLimitedResolutionList,
        'adaptation_changes': helper.GetVideoAdaptationChangeList,
        'video_packets_sent': helper.GetVideoPacketsSentList,
        'video_packets_lost': helper.GetVideoPacketsLostList,
        'video_encode_cpu_usage': helper.GetVideoEncodeCpuUsagePercentList,
        'num_active_vid_in_streams':
                helper.GetNumberOfActiveIncomingVideoStreams,
        'cpu_processors': helper.GetNumOfProcessors,
        'cpu_percent': helper.GetTotalCpuPercentage,
        'browser_cpu_percent': helper.GetBrowserCpuPercentage,
        'gpu_cpu_percent': helper.GetGpuCpuPercentage,
        'nacl_effects_cpu_percent': helper.GetNaclEffectsCpuPercentage,
        'renderer_cpu_percent': helper.GetRendererCpuPercentage,
    }


    data_array = data_type_to_func_map[data_type]()
    logging.info('Data Type: %s, Data Array: %s', data_type, str(data_array))
    return data_array