我正在尝试从HD Live Stream获取图像。获取OMX解码器YUV流并将它们转换为JPG。 JPEG完全受到干扰。尝试了一些小组的建议,但没有工作。 我的分辨率是320x240。
对于配置的320 * 240分辨率,我将得到缓冲区长度为(386 * 256 * 1.5)。我没有得到如何获得这个新的宽度和高度信息。
我在Java中使用JPG转换代码,使用OMXCodec是Native。请帮帮我。
final int frameSize = width * height;
final int qFrameSize = frameSize/4;
int padding = 0;/*(width*height + 2047) & ~2047;
if ((width % 32) != 0) {
padding = (width*height) % 1024;
} else {
padding = (width*height) % 2048;
}
System.arraycopy(input, 0, output, 0, frameSize); // Y
for (int i = 0; i < qFrameSize; i++) {
output[frameSize + i*2 + padding] = input[frameSize + i + qFrameSize ]; // Cb (U)
output[frameSize + i*2 + 1 + padding] = input[frameSize + i ]; // Cr (V)
}
return ;
}
谢谢你,
Raghu
答案 0 :(得分:0)
QCom视频解码器的输出通常是特定的自定义颜色格式,通常称为平铺格式。请参考这些问题,这些问题有关于如何将数据转换为更清晰的框架的更多输入
QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka converter
QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka color format