svq3: use hpeldsp instead of dsputil for half-pel functions.
[ffmpeg.git] / libavcodec / rectangle.h
index e26d70f..594a760 100644 (file)
@@ -20,7 +20,7 @@
  */
 
 /**
- * @file libavcodec/rectangle.h
+ * @file
  * useful rectangle filling function
  * @author Michael Niedermayer <michaelni@gmx.at>
  */
 #ifndef AVCODEC_RECTANGLE_H
 #define AVCODEC_RECTANGLE_H
 
-#include <assert.h>
 #include "config.h"
 #include "libavutil/common.h"
-#include "dsputil.h"
+#include "libavutil/avassert.h"
 
 /**
  * fill a rectangle.
  */
 static av_always_inline void fill_rectangle(void *vp, int w, int h, int stride, uint32_t val, int size){
     uint8_t *p= (uint8_t*)vp;
-    assert(size==1 || size==2 || size==4);
-    assert(w<=4);
+    av_assert2(size==1 || size==2 || size==4);
+    av_assert2(w<=4);
 
     w      *= size;
     stride *= size;
 
-    assert((((long)vp)&(FFMIN(w, STRIDE_ALIGN)-1)) == 0);
-    assert((stride&(w-1))==0);
+    av_assert2((((long)vp)&(FFMIN(w, 8<<(HAVE_NEON|ARCH_PPC|HAVE_MMX))-1)) == 0);
+    av_assert2((stride&(w-1))==0);
     if(w==2){
         const uint16_t v= size==4 ? val : val*0x0101;
         *(uint16_t*)(p + 0*stride)= v;
@@ -87,7 +86,7 @@ static av_always_inline void fill_rectangle(void *vp, int w, int h, int stride,
         *(uint64_t*)(p + 0+3*stride)= v;
         *(uint64_t*)(p + 8+3*stride)= v;
 #else
-        const uint32_t v= size==2 ? val*0x00010001 : val*0x01010101;
+        const uint32_t v= size==2 ? val*0x00010001 : val;
         *(uint32_t*)(p + 0+0*stride)= v;
         *(uint32_t*)(p + 4+0*stride)= v;
         if(h==1) return;
@@ -118,8 +117,8 @@ static av_always_inline void fill_rectangle(void *vp, int w, int h, int stride,
         *(uint32_t*)(p +12+3*stride)= val;
 #endif
     }else
-        assert(0);
-    assert(h==4);
+        av_assert2(0);
+    av_assert2(h==4);
 }
 
 #endif /* AVCODEC_RECTANGLE_H */