我遇到了与 Samsung Android设备的非常奇怪的Bitmap
渲染问题。让我简单地讨论一下我所做的事情。
我从视频中获取帧并使用ffmpeg在ImageView
中呈现它。下面的代码为我提供了一个位图对象,作为JNI
回调的回报。
img_convert_ctx = sws_getContext(pCodecCtx->width,
pCodecCtx->height, pCodecCtx->pix_fmt, target_width,
target_height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL,NULL);
sws_scale(img_convert_ctx,(const uint8_t* const *)
pFrame->data,pFrame->linesize, 0, pCodecCtx->height,pFrameRGB->data,
pFrameRGB->linesize);
接下来,我只是将Bitmap
设置为ImageView
。现在问题是我得到的Bitmap
在除三星S2 / S3之外的最大设备中呈现得非常好。
A>运作良好在: - 屏幕截图1
问题: - B>三星Galaxy S2& S3:第二个屏幕截图。
对于案例B,如果您注意到,视频的一部分将在右侧呈现。
我已尝试将Bitmap
我从JNI
保存为SD卡中的jpg并再次阅读以设置ImageView
并且它有效。我不明白我从JNI
回调获得的原始Bitmap出了什么问题,是不是有三星S2硬件?请有人帮我这个。