コード例 #1
0
ファイル: bulk-upload-client.cpp プロジェクト: windy32/algts
void BulkUploadClient::generateRegularTrace(RegularTraceItem &trace, 
                                            int seconds)
{
    // Init regular trace
    trace.clear();
    trace.insert("TxRate", QList<qint32>());
    trace.insert("MaxTxRate", QList<qint32>());
    trace.insert("Active", QList<qint32>());
        
    // Calculate busy ratio
    int startTime = m_trace.time.first(); // ms
    int stopTime = m_trace.time.last(); // ms
    QVector<double> busyRatios(seconds, 0.0);
    
    for(int i = startTime / 1000; i <= stopTime / 1000; i++)
    {
        if( startTime / 1000 == stopTime / 1000 )
        {
            busyRatios[i] += (stopTime - startTime) / 1000.0;
            break;
        }
        if( i >= seconds )
        {
            LOG_DEBUG("Index is out of range");
            break;
        }
        
        if( i == startTime / 1000 )
        {
            busyRatios[i] += 1.0 - (startTime % 1000) / 1000.0;
        }
        else if( i < stopTime / 1000 )
        {
            busyRatios[i] += 1.0;
        }
        else if( i == stopTime / 1000 )
        {
            busyRatios[i] += (stopTime % 1000) / 1000.0;
        }
    }
    
    // MaxRxRate & Active
    for(int i = 0; i < seconds; i++)
    {
        trace["MaxTxRate"].append(
            (m_task->getMaxRate() == -1) ? (busyRatios[i] > 0.0 ? -1 : 0) : 
            busyRatios[i] * m_task->getMaxRate());
        trace["Active"].append(busyRatios[i] > 0.0 ? 1 : 0);
    }
    
    // TxRate
    QVector<qint32> bytesPerSecond(seconds, 0);
    for(int i = 0; i < m_trace.totalBytes.size(); i++)
    {
        if( m_trace.time[i] < seconds * 1000 )
        {
            bytesPerSecond[m_trace.time[i] / 1000] += m_trace.newBytes[i];
        }
        else
        {
            LOG_DEBUG("Time is out of range");
        }
    }
    for(int i = 0; i < seconds; i++)
    {
        trace["TxRate"].append(bytesPerSecond[i]);
    }
}
コード例 #2
0
ファイル: AudioFormat.cpp プロジェクト: DavidJohnSmith/QtAV
int AudioFormat::bitRate() const
{
    return bytesPerSecond() << 3;
}