安卓手机中SDL窗口/纹理的分辨率问题



我正在尝试在Android手机中通过RTSP协议流式传输视频。我创建了一个应用程序,它通过RTSP协议接收数据包,使用FFMPEG进行解码,并使用SDL 2.0将其呈现给窗口。在该应用程序中,创建SDL窗口和SDL纹理如下所示:

screen = SDL_CreateWindow ("Test ffmpeg",SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 1280, 720, SDL_WINDOW_SHOWN|SDL_WINDOW_FULLSCREEN ); 
bmp = SDL_CreateTexture  (renderer, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STREAMING, 1280, 720);

该应用程序在三星Galaxy S3上运行平稳(没有任何闪烁或失真)(但有红色覆盖),但在HTC轰动xe、三星Galaxy grand、索尼xperia S上,有很多闪烁和失真。当我试图降低上述两个功能的分辨率时(即创建纹理和创建窗口(HTC sense xe中的640*360和三星galaxy grand中的800*480),应用程序运行顺利。现在我有两个问题

  1. 为什么三星galaxy s3以外的手机(在上述所有手机中)无法播放更高分辨率(1280*720)的视频
  2. 在所有三星galaxy s3手机上,我都能看到一个红色的覆盖层。有人知道红色覆盖层的原因吗

Re 2,我已经通过禁用开发者选项菜单中的硬件覆盖选项解决了三星galaxy s3手机上的红色显示问题(设置->开发者选项->选中"禁用硬件覆盖"复选框)

最新更新