Merge remote-tracking branch 'qatar/master'
[ffmpeg.git] / tests / utils.c
index aaed470..3fef048 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 #define SCALEBITS 8
 #define ONE_HALF  (1 << (SCALEBITS - 1))
 #define FIX(x)    ((int) ((x) * (1L << SCALEBITS) + 0.5))
 
+#define err_if(expr) do {                                              \
+    if (expr) {                                                        \
+        fprintf(stderr, "%s\n", strerror(errno));                      \
+        exit(1);                                                       \
+    }                                                                  \
+} while (0)
+
 static void rgb24_to_yuv420p(unsigned char *lum, unsigned char *cb,
                              unsigned char *cr, unsigned char *src,
                              int width, int height)
@@ -110,14 +119,14 @@ static void pgmyuv_save(const char *filename, int w, int h,
 
     f = fopen(filename, "wb");
     fprintf(f, "P5\n%d %d\n%d\n", w, h * 3 / 2, 255);
-    fwrite(lum_tab, 1, w * h, f);
+    err_if(fwrite(lum_tab, 1, w * h, f) != w * h);
     h2 = h / 2;
     w2 = w / 2;
     cb = cb_tab;
     cr = cr_tab;
     for (i = 0; i < h2; i++) {
-        fwrite(cb, 1, w2, f);
-        fwrite(cr, 1, w2, f);
+        err_if(fwrite(cb, 1, w2, f) != w2);
+        err_if(fwrite(cr, 1, w2, f) != w2);
         cb += w2;
         cr += w2;
     }