Vitor <vitor1...@gmail.com> added the comment:

Attached patch should fix it.

________________________________________________
FFmpeg issue tracker <iss...@roundup.ffmpeg.org>
<https://roundup.ffmpeg.org/issue2113>
________________________________________________
Index: libswscale/swscale.c
===================================================================
--- libswscale/swscale.c	(revision 31758)
+++ libswscale/swscale.c	(working copy)
@@ -974,6 +974,34 @@
             }
         }
         break;
+    case PIX_FMT_RGB565:
+            YSCALE_YUV_2_RGBX_FULL_C(1<<21, 0)
+            ((uint16_t *)dest)[0] = B>>25 | ((G>>19) & (127 << 5)) |
+                ((R>>14) & (63 << 11));
+                dest+= step;
+            }
+        break;
+    case PIX_FMT_BGR565:
+            YSCALE_YUV_2_RGBX_FULL_C(1<<21, 0)
+            ((uint16_t *)dest)[0] = R>>25 | ((G>>19) & (127 << 5)) |
+                ((B>>14) & (63 << 11));
+                dest+= step;
+            }
+        break;
+    case PIX_FMT_BGR555:
+            YSCALE_YUV_2_RGBX_FULL_C(1<<21, 0)
+            ((uint16_t *)dest)[0] = R>>25 | ((G>>20) & (63 << 5)) |
+                ((B>>15) & (63 << 10));
+                dest+= 2;
+            }
+        break;
+    case PIX_FMT_RGB555:
+            YSCALE_YUV_2_RGBX_FULL_C(1<<21, 0)
+            ((uint16_t *)dest)[0] = B>>25 | ((G>>20) & (63 << 5)) |
+                ((R>>15) & (63 << 10));
+                dest+= 2;
+            }
+        break;
     default:
         assert(0);
     }

Reply via email to