Vista previa de la cámara de corte para TextureView

Tengo un TextureView con un ancho y una altura fijos y quiero mostrar una vista previa de la cámara en su interior. Necesito recortar la vista previa de la cámara para que no se vea estirada dentro de mi TextureView. ¿Cómo hacer el cultivo? Si necesito usar OpenGL, ¿cómo vincular la textura de la superficie con OpenGL y cómo realizar el recorte con OpenGL?

public class MyActivity extends Activity implements TextureView.SurfaceTextureListener 
{

   private Camera mCamera;
   private TextureView mTextureView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_options);

    mTextureView = (TextureView) findViewById(R.id.camera_preview);
    mTextureView.setSurfaceTextureListener(this);
}

@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    mCamera = Camera.open();

    try 
    {
        mCamera.setPreviewTexture(surface);
        mCamera.startPreview();
    } catch (IOException ioe) {
        // Something bad happened
    }
}

@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
    mCamera.stopPreview();
    mCamera.release();
    return true;
}

@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
}

@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface)
 {
    // Invoked every time there's a new Camera preview frame
 }
}

Además, después de hacer la vista previa correctamente, necesito poder leer en tiempo real los píxeles que se encuentran en el centro de la imagen recortada.