【问题标题】:Issues with resolution of SDL window/texture in android phonesandroid 手机中 SDL 窗口/纹理的分辨率问题
【发布时间】:2014-02-26 16:14:01
【问题描述】:

我正在尝试在 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 sense xe、三星 Galaxy Grand、索尼 xperia S 上,有很多闪烁和失真。当我尝试降低上述两个功能的分辨率(即创建纹理和创建窗口(HTC sense xe 中为 640*360,三星 Galaxy Grand 中为 800*480)时,应用程序运行顺畅。现在我有两个问题

  1. 为什么除了三星 Galaxy s3 以外的手机(在上述所有手机中)无法传输更高分辨率 (1280*720) 的视频?
  2. 在所有三星 Galaxy s3 手机上,我都可以看到微红色的覆盖层。有谁知道这个红色覆盖的原因是什么?

【问题讨论】:

  • Re 2,见bugzilla.libsdl.org/show_bug.cgi?id=2291 这是一个已知的“错误”,那里列出了一种解决方法。此外,适用于 Android 的 FWIW、SDL2 会忽略您请求的任何窗口大小并使用显示器的原始分辨率。

标签: android sdl


【解决方案1】:

Re 2,我已通过禁用开发人员选项菜单中的硬件覆盖选项(设置->开发人员选项->选中“禁用硬件覆盖”复选框)解决了三星 Galaxy S3 手机上的红色显示问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-05
    • 2011-09-12
    • 2020-11-14
    • 2014-09-12
    • 1970-01-01
    • 2014-01-13
    • 2018-03-16
    • 2020-08-03
    相关资源
    最近更新 更多