OSDN Git Service

lavd/sdl2: Fix 32bit rgb formats on little-endian hardware.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Sat, 24 Sep 2016 16:56:40 +0000 (18:56 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Sat, 24 Sep 2016 16:56:40 +0000 (18:56 +0200)
libavdevice/sdl2.c

index d083d29..e8252f0 100644 (file)
@@ -67,8 +67,6 @@ static const struct sdl_texture_format_entry {
      * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_RGBA5551 },
      * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_ABGR1555 },
      * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_BGRA5551 },
-     * { AV_PIX_FMT_RGB24,SDL_PIXELFORMAT_RGB888 },
-     * { AV_PIX_FMT_BGR24,SDL_PIXELFORMAT_BGR888 },
      * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_ARGB2101010 },
     */
     { AV_PIX_FMT_RGB8,    SDL_PIXELFORMAT_RGB332 },
@@ -79,12 +77,19 @@ static const struct sdl_texture_format_entry {
     { AV_PIX_FMT_BGR565,  SDL_PIXELFORMAT_BGR565 },
     { AV_PIX_FMT_RGB24,   SDL_PIXELFORMAT_RGB24 },
     { AV_PIX_FMT_BGR24,   SDL_PIXELFORMAT_BGR24 },
-    { AV_PIX_FMT_RGB0,    SDL_PIXELFORMAT_RGBX8888 }, // needs to be checked
-    { AV_PIX_FMT_BGR0,    SDL_PIXELFORMAT_BGRX8888 }, // "
-    { AV_PIX_FMT_ARGB,    SDL_PIXELFORMAT_ARGB8888 }, // "
-    { AV_PIX_FMT_RGBA,    SDL_PIXELFORMAT_RGBA8888 },
-    { AV_PIX_FMT_ABGR,    SDL_PIXELFORMAT_ABGR8888 },
-    { AV_PIX_FMT_BGRA,    SDL_PIXELFORMAT_BGRA8888 },
+    { AV_PIX_FMT_0RGB32,  SDL_PIXELFORMAT_RGB888 },
+    { AV_PIX_FMT_0BGR32,  SDL_PIXELFORMAT_BGR888 },
+#if HAVE_BIGENDIAN
+    { AV_PIX_FMT_RGB0,    SDL_PIXELFORMAT_RGBX8888 },
+    { AV_PIX_FMT_BGR0,    SDL_PIXELFORMAT_BGRX8888 },
+#else
+    { AV_PIX_FMT_0BGR,    SDL_PIXELFORMAT_RGBX8888 },
+    { AV_PIX_FMT_0RGB,    SDL_PIXELFORMAT_BGRX8888 },
+#endif
+    { AV_PIX_FMT_RGB32,   SDL_PIXELFORMAT_ARGB8888 },
+    { AV_PIX_FMT_RGB32_1, SDL_PIXELFORMAT_RGBA8888 },
+    { AV_PIX_FMT_BGR32,   SDL_PIXELFORMAT_ABGR8888 },
+    { AV_PIX_FMT_BGR32_1, SDL_PIXELFORMAT_BGRA8888 },
     { AV_PIX_FMT_YUV420P, SDL_PIXELFORMAT_IYUV },
     { AV_PIX_FMT_YUYV422, SDL_PIXELFORMAT_YUY2 },
     { AV_PIX_FMT_UYVY422, SDL_PIXELFORMAT_UYVY },