YUV420p データのフォーマットの基本的な理解があります。プレーンにあり、Y データは基本的に白黒の輝度であり、長さは width*height ピクセルである必要があることを理解しています。
U プレーンと V プレーンは、各プレーンのサイズが width*height/4 であると私は信じています。
そのすべての知識をもとに、libswscale を使用して yuv420p イメージをスケーリングしようとしています。U プレーンと V プレーンが欠落しているように、出力イメージは灰色です。
これが私がやっていることです:
int src_stride[3] = {0, 0, 0};
src_stride[0] = mInputWidth;
src_stride[1] = mInputWidth / 4;
src_stride[2] = mInputWidth / 4;
const uint8_t *input_planes[3];
input_planes[0] = input.GetData(); // returns pointer to image data
input_planes[1] = input_planes[0] + (mInputWidth * mInputHeight);
input_planes[2] = input_planes[0] + (mInputWidth * mInputHeight) + (mInputWidth * mInputHeight / 4);
int scale_rc = sws_scale(mSwsEncodeContext, input_planes,
src_stride, 0, mInputHeight, mEncodeAvFrame->data,
mEncodeAvFrame->linesize);
src_stride または input_planes をボッチングしているかどうか、何か考えはありますか?