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); } }
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); }
int num_pending_samples() { return num_samples() - num_processed_samples(); }