0

我遇到了三星 Android 设备Bitmap的一个非常奇怪的渲染问题。让我简要讨论一下我做了什么。

我正在从视频中获取帧并ImageView使用 ffmpeg 将其渲染。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);

接下来,我只是将 设置BitmapImageView。现在的问题是Bitmap我得到的在除了三星 S2/S3 之外的最大设备中渲染得非常好。

A>工作良好:- 屏幕截图 1

  1. 连结 4
  2. HTC 一号 / HTC 一号 x
  3. LG 擎天柱
  4. 索尼体验
  5. 三星 Galaxy S Plus / 三星展览 (Android 2.3)

问题:- B>三星 Galaxy S2 和 S3:第二个屏幕截图。

对于案例 B,如果您注意到,视频的一部分正在右侧呈现。

我已经尝试将Bitmap我从JNISD 卡中获得的 jpg 保存并再次读取以设置它ImageView并且它可以工作。我不明白我从JNI回调中得到的原始位图出了什么问题,是三星 S2 硬件吗?请有人帮我解决这个问题。

使用 Nexus 4/HTC/XOLO/Sony/Samsung S plus

与三星 S3/S3

4

0 回答 0