avformat/img2_alias & brender_pix: fix function names
[ffmpeg.git] / libavformat / img2_alias_pix.c
index 3d00f84..e1654f3 100644 (file)
  */
 
 #include "img2.h"
-#include "libavutil/intreadwrite.h"
+#include "libavcodec/bytestream.h"
 
-static int brender_read_probe(AVProbeData *p)
+static int alias_pix_read_probe(AVProbeData *p)
 {
-    int width  = AV_RB16(p->buf);
-    int height = AV_RB16(p->buf+2);
-    int ox     = AV_RB16(p->buf+4);
-    int oy     = AV_RB16(p->buf+6);
-    int bpp    = AV_RB16(p->buf+8);
-    int count  = p->buf[10];
+    const uint8_t *b = p->buf;
+    const uint8_t *end = b + p->buf_size;
+    int width  = bytestream_get_be16(&b);
+    int height = bytestream_get_be16(&b);
+    av_unused int ox = bytestream_get_be16(&b);
+    av_unused int oy = bytestream_get_be16(&b);
+    int bpp    = bytestream_get_be16(&b);
+    int x, y;
 
-    if (!count || !height || count > width)
+    if (!width || !height)
         return 0;
 
     if (bpp != 24 && bpp != 8)
         return 0;
 
+    for (y=0; y<2 && y<height; y++) {
+        for (x=0; x<width; ) {
+            int count = *b++;
+            if (count == 0 || x + count > width)
+                return 0;
+            if (b > end)
+                return AVPROBE_SCORE_MAX / 8;
+            b += bpp / 8;
+            x += count;
+        }
+    }
+
     return AVPROBE_SCORE_EXTENSION + 1;
 }
 
@@ -44,7 +58,7 @@ AVInputFormat ff_image2_alias_pix_demuxer = {
     .name           = "alias_pix",
     .long_name      = NULL_IF_CONFIG_SMALL("Alias/Wavefront PIX image"),
     .priv_data_size = sizeof(VideoDemuxData),
-    .read_probe     = brender_read_probe,
+    .read_probe     = alias_pix_read_probe,
     .read_header    = ff_img_read_header,
     .read_packet    = ff_img_read_packet,
     .raw_codec_id   = AV_CODEC_ID_ALIAS_PIX,