static int winding_quad(const SkPoint pts[], SkScalar x, SkScalar y) { SkPoint dst[5]; int n = 0; if (!is_mono(pts[0].fY, pts[1].fY, pts[2].fY)) { n = SkChopQuadAtYExtrema(pts, dst); pts = dst; } int w = winding_mono_quad(pts, x, y); if (n > 0) { w += winding_mono_quad(&pts[2], x, y); } return w; }
void hb_audio_resample_set_channel_layout(hb_audio_resample_t *resample, uint64_t channel_layout) { if (resample != NULL) { if (channel_layout == AV_CH_LAYOUT_STEREO_DOWNMIX) { // Dolby Surround is Stereo when it comes to remixing channel_layout = AV_CH_LAYOUT_STEREO; } // swresample can't remap a single-channel layout to // another single-channel layout if (resample->out.channel_layout == AV_CH_LAYOUT_MONO && is_mono(channel_layout)) { channel_layout = AV_CH_LAYOUT_MONO; } resample->in.channel_layout = channel_layout; } }
bool Audio::is_stereo(Encoding encoding) { return !is_mono(encoding); }