FlowReturn Chain(Pad pad, Gst.Object parent, Gst.Buffer buffer) { if (Volume == 1.0) { return _src.Push(buffer); } buffer.MakeWritable(); MapInfo mapInfo; buffer.Map(out mapInfo, MapFlags.Read | MapFlags.Write); ScaleInt16(mapInfo.DataPtr, mapInfo.Size / 2, Volume); buffer.Unmap(mapInfo); return _src.Push(buffer); }