Fast way to set byte array to unity texture2d

in unity3d i get image from camera (color camera device) as byte array from a plugin , and i want show image in real-time in screen .

If i use Texture2D.SetPixels32 for making a texture, it decrease fps dramatically ( from 80 to 10).

//First convert byte[] to color[]
  colorr = GetColor(imageBuffer);

  imageColor.SetPixels32(colorr);
  imageColor.Apply();   // fps reduced here

I guess i need to do this with a shader on GPU .

So what is solution to do this faster ? if answer is using shader , can give a sample

thx.

This implementation was made in order to blend a video texture with an alpha channel. I imagine you could take parts of this shader and apply it to what you’re building.