Como alterar a orientação do buffer de retorno de chamada da visualização da câmera?

Esta é uma variação de uma pergunta frequentemente feita aqui, mas eu não vejo essa situação exata, então eu a jogo lá for

Tenho um retorno de chamada onPreviewFrame configurado. Isso obtém um byte [] com os dados do NV21. Nós o codificamos e enviamos como um fluxo de vídeo. Por outro lado, vemos o vídeo inclinado, 90 ou 270 graus, dependendo do telefone.

Então a questão é, como girar odado, não apenas a imagem de visualização? Camera.Parameters.setRotation afeta apenas a captura da foto, não do vídeo. Camera.setDisplayOrientation diz especificamente que afeta apenas a visualização exibida, não os bytes do quadro:

Isso não afeta a ordem da matriz de bytes transmitida no onPreviewFrame (byte [], Câmera), imagens JPEG ou vídeos gravado

Existe uma maneira, em qualquer nível da API, de alterar a orientação da matriz de bytes? Caso contrário, você pode rotacionar o formato NV21 (YVU) em que ele está inserido ou preciso RGB primeir

questionAnswers(2)

yourAnswerToTheQuestion