HRESULT TaudioFilterChannelSwap::process(TfilterQueue::iterator it, TsampleFormat &fmt, void *samples, size_t numsamples, const TfilterSettingsAudio *cfg0)
{
    const TchannelSwapSettings *cfg = (const TchannelSwapSettings*)cfg0;

    if (!cfg->equal(oldcfg) || oldfmt != fmt || old_nchannels != fmt.nchannels) {
        makeMap(fmt, cfg);
    }

    fmt.channelmask = newchannelmask;
    switch (fmt.sf) {
        case TsampleFormat::SF_PCM16:
            swapChannels((int16_t*)samples, numsamples);
            break;
        case TsampleFormat::SF_PCM24:
            swapChannels((int24_t*)samples, numsamples);
            break;
        case TsampleFormat::SF_PCM32:
            swapChannels((int32_t*)samples, numsamples);
            break;
        case TsampleFormat::SF_FLOAT32:
            swapChannels((float*)samples, numsamples);
            break;
    }
    return parent->deliverSamples(++it, fmt, samples, numsamples);
}
Exemple #2
0
void convertBGRToRGB(VglImage *src)
{
  swapChannels(src, 0, 2);
}
Exemple #3
0
/** Function to convert image in RGB format to BGR format
 */
void convertRGBToBGR(VglImage *src)
{
  swapChannels(src, 0, 2);
}