Пример #1
0
void pixel_t::flatten( color::color3f_t& c, color::color3f_t& a) const
{
    if( num_samples())
    {
        c = c_data_[0];
        a = a_data_[0];
    }
    else
    {
        c = color::color3f_t( 0.0f);
        a = color::color3f_t( 0.0f);
    }
    
    for( int i = 1, e = num_samples(); i < e; ++i)
    {
        c.x = c.x + c_data_[i].x * (1.0f - a.x);
        c.y = c.y + c_data_[i].y * (1.0f - a.y);
        c.z = c.z + c_data_[i].z * (1.0f - a.z);
        a.x = a.x + a_data_[i].x * (1.0f - a.x);
        a.y = a.y + a_data_[i].y * (1.0f - a.y);
        a.z = a.z + a_data_[i].z * (1.0f - a.z);
    }
}
Пример #2
0
void AudioPacket::set_size(packet::channel_mask_t ch_mask,
                           size_t n_samples,
                           size_t sample_rate) {
    if (const RTP_AudioFormat* format = get_audio_format_cr(ch_mask, sample_rate)) {
        format_ = format;
    } else {
        roc_panic("rtp audio packet: no supported format for channel mask 0x%xu",
                  (unsigned)ch_mask);
    }

    packet_.header().set_payload_type(format_->pt);
    packet_.set_payload_size(format_->size(n_samples));

    if (n_samples) {
        format_->clear(packet_.payload().data(), n_samples);
    }

    roc_panic_if(channels() != ch_mask);
    roc_panic_if(num_samples() != n_samples);
}
Пример #3
0
 int num_pending_samples() {
     return num_samples() - num_processed_samples();
 }