Browse Source

mode: Add a function to get padding bytes per line (MR 13)

Add a function to get extra padding bytes needed to make bytes
per width a multiple of 8.
Yassine Oudjana 3 years ago
parent
commit
ba57d91da4
2 changed files with 15 additions and 0 deletions
  1. 13 0
      src/mode.c
  2. 2 0
      src/mode.h

+ 13 - 0
src/mode.c

@@ -208,6 +208,19 @@ mp_pixel_format_width_to_bytes(MPPixelFormat pixel_format, uint32_t width)
         return (bits_per_width + 8 - remainder) / 8;
 }
 
+uint32_t
+mp_pixel_format_width_to_padding(MPPixelFormat pixel_format, uint32_t width)
+{
+        uint64_t bytes_per_width =
+                mp_pixel_format_width_to_bytes(pixel_format, width);
+
+        uint64_t remainder = bytes_per_width % 8;
+        if (remainder == 0)
+                return remainder;
+
+        return 8 - remainder;
+}
+
 uint32_t
 mp_pixel_format_width_to_colors(MPPixelFormat pixel_format, uint32_t width)
 {

+ 2 - 0
src/mode.h

@@ -33,6 +33,8 @@ uint32_t mp_pixel_format_pixel_depth(MPPixelFormat pixel_format);
 const char *mp_pixel_format_cfa(MPPixelFormat pixel_format);
 const char *mp_pixel_format_cfa_pattern(MPPixelFormat pixel_format);
 uint32_t mp_pixel_format_width_to_bytes(MPPixelFormat pixel_format, uint32_t width);
+uint32_t mp_pixel_format_width_to_padding(MPPixelFormat pixel_format,
+                                          uint32_t width);
 uint32_t mp_pixel_format_width_to_colors(MPPixelFormat pixel_format, uint32_t width);
 uint32_t mp_pixel_format_height_to_colors(MPPixelFormat pixel_format,
                                           uint32_t height);