]> git.sesse.net Git - vlc/commitdiff
Patch by Andre Weber: fix several warnings in atmo video_filter.
authorJean-Paul Saman <jpsaman@videolan.org>
Sat, 16 Feb 2008 19:11:23 +0000 (19:11 +0000)
committerJean-Paul Saman <jpsaman@videolan.org>
Sat, 16 Feb 2008 19:11:23 +0000 (19:11 +0000)
modules/video_filter/atmo/AtmoDefs.h
modules/video_filter/atmo/AtmoExternalCaptureInput.cpp
modules/video_filter/atmo/AtmoOutputFilter.cpp
modules/video_filter/atmo/AtmoTools.cpp
modules/video_filter/atmo/AtmoZoneDefinition.cpp
modules/video_filter/atmo/atmo.cpp

index d6ced77552af061571b413b207719b972b87137f..569bac0a5868e39ba0525ea9b876ffd707db2b13 100644 (file)
     typedef int ATMO_BOOL;
 #   define ATMO_TRUE   1
 #   define ATMO_FALSE  0
+#   define MakeWord(ch1,ch2)  ((((int)(ch1)&255)<<8) | \
+                           ((int)(ch2)&255))
+
+#   define MakeDword(ch1,ch2,ch3,ch4) ((((DWORD)(ch1)&255) << 24) | \
+                                   (((DWORD)(ch2)&255) << 16) | \
+                                   (((DWORD)(ch3)&255) << 8) | \
+                                   (((DWORD)(ch4)&255)))
+
 
 #endif
 
@@ -56,10 +64,9 @@ typedef struct
 
 
 
-#define FCC(ch4) ((((DWORD)(ch4) & 0xFF) << 24) |     \
-                  (((DWORD)(ch4) & 0xFF00) << 8) |    \
-                  (((DWORD)(ch4) & 0xFF0000) >> 8) |  \
-                  (((DWORD)(ch4) & 0xFF000000) >> 24))
+
+
+
 
 // maximal Anzahl Kanäle...
 #define ATMO_NUM_CHANNELS   5
index 1dc6aaaeec125c84e92c6338be9f966e6952e641..bbe3440cdaac017d94ea40dd661ad21e02cbbd0c 100644 (file)
@@ -219,7 +219,11 @@ void CAtmoExternalCaptureInput::CalcColors() {
 
           // HSVI = HSV Image allready in right format just copy the easiest task
           // und weiterverarbeiten lassen
-          if(m_CurrentFrameHeader.biCompression ==  FCC('HSVI'))
+#ifdef _ATMO_VLC_PLUGIN_
+          if(m_CurrentFrameHeader.biCompression ==  VLC_FOURCC('H','S','V','I'))
+#else
+          if(m_CurrentFrameHeader.biCompression ==  MakeDword('H','S','V','I'))
+#endif
           {
               memcpy( &HSV_Img, m_pCurrentFramePixels, CAP_WIDTH * CAP_HEIGHT * sizeof(tHSVColor));
           }
index a4e8637cd9f4d26ebe41bbc242aea85267cddb5b..3cefa0033c5aee8bf19329c1fc064368c7f50c6c 100644 (file)
@@ -13,6 +13,7 @@
 #include "AtmoOutputFilter.h"
 
 
+
 CAtmoOutputFilter::CAtmoOutputFilter(CAtmoConfig *atmoConfig)
 {
    this->m_pAtmoConfig = atmoConfig;
@@ -93,6 +94,7 @@ void CAtmoOutputFilter::MeanFilter(ATMO_BOOL init)
   static tColorPacket filter_output_old;
   static int filter_length_old;
   char reinitialize = 0;
+  long int tmp;
 
   if (init) // Initialization
   {
@@ -120,15 +122,21 @@ void CAtmoOutputFilter::MeanFilter(ATMO_BOOL init)
     // calculate the mean-value filters
     mean_sums.channel[ch].r +=
          (long int)(filter_input.channel[ch].r - mean_values.channel[ch].r); // red
-    mean_values.channel[ch].r = mean_sums.channel[ch].r / ((long int)filter_length_old / 20);
+    tmp = mean_sums.channel[ch].r / ((long int)filter_length_old / 20);
+    if(tmp<0) tmp = 0; else { if(tmp>255) tmp = 255; }
+    mean_values.channel[ch].r = (unsigned char)tmp;
 
     mean_sums.channel[ch].g +=
         (long int)(filter_input.channel[ch].g - mean_values.channel[ch].g); // green
-    mean_values.channel[ch].g = mean_sums.channel[ch].g / ((long int)filter_length_old / 20);
+    tmp = mean_sums.channel[ch].g / ((long int)filter_length_old / 20);
+    if(tmp<0) tmp = 0; else { if(tmp>255) tmp = 255; }
+    mean_values.channel[ch].g = (unsigned char)tmp;
 
     mean_sums.channel[ch].b +=
         (long int)(filter_input.channel[ch].b - mean_values.channel[ch].b); // blue
-    mean_values.channel[ch].b = mean_sums.channel[ch].b / ((long int)filter_length_old / 20);
+    tmp = mean_sums.channel[ch].b / ((long int)filter_length_old / 20);
+    if(tmp<0) tmp = 0; else { if(tmp>255) tmp = 255; }
+    mean_values.channel[ch].b = (unsigned char)tmp;
 
     // check, if there is a jump -> check if differences between actual values and filter values are too big
 
index 09eb4bab72f4ab8659904dc08f821c0d3f7b9511..91e41c7a11b939d64b3b4677349178a8c8404ce1 100644 (file)
@@ -261,9 +261,14 @@ void CAtmoTools::SaveBitmap(HDC hdc,HBITMAP hBmp,char *fileName) {
      bmpFileHeader.bfReserved1=0;
      bmpFileHeader.bfReserved2=0;
      bmpFileHeader.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+bmpInfo.bmiHeader.biSizeImage;
-     bmpFileHeader.bfType='MB';
+#ifdef _ATMO_VLC_PLUGIN_
+     bmpFileHeader.bfType = VLC_TWOCC('M','B');
+#else
+     bmpFileHeader.bfType = MakeWord('M','B');
+#endif
      bmpFileHeader.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
 
+
      FILE *fp = NULL;
      fp = fopen(fileName,"wb");
      fwrite(&bmpFileHeader,sizeof(BITMAPFILEHEADER),1,fp);
index 854a9e25635dd700096935260af6240e53d83659..eb9bd57409b26fc6d6a11b75b31b3e92e40eff99 100644 (file)
@@ -103,8 +103,11 @@ int CAtmoZoneDefinition::LoadGradientFromBitmap(char *pszBitmap)
         fclose(bmp);
         return ATMO_LOAD_GRADIENT_FAILED_SIZE;
     }
-
-    if(bmpFileHeader.bfType != 'MB')
+#ifdef _ATMO_VLC_PLUGIN_
+    if(bmpFileHeader.bfType != VLC_TWOCC('M','B'))
+#else
+    if(bmpFileHeader.bfType != MakeWord('M','B'))
+#endif
     {
         fclose(bmp);
         return ATMO_LOAD_GRADIENT_FAILED_HEADER;
@@ -206,7 +209,7 @@ void CAtmoZoneDefinition::UpdateWeighting(int *destWeight,
           {
              destWeight[index] = 0;
           } else {
-             destWeight[index] = (int)(255.0 * (float)pow( ((float)m_BasicWeight[index])/255.0 , newEdgeWeightning));
+                    destWeight[index] = (int)(255.0 * (float)pow( ((float)m_BasicWeight[index])/255.0 , newEdgeWeightning));
           }
           index++;
       }
index 00909b360b35238f78f0204cef44228e5fcdd6d6..ab57e94f6b17b046d60f1896664643579ed68c28 100644 (file)
@@ -1612,7 +1612,7 @@ void SaveBitmap(filter_sys_t *p_sys, uint8_t *p_pixels, char *psz_filename)
     bmp_fileheader.bfSize = sizeof(BITMAPFILEHEADER) +
                             sizeof(BITMAPINFOHEADER) +
                             bmp_info.bmiHeader.biSizeImage;
-    bmp_fileheader.bfType = 'MB';
+    bmp_fileheader.bfType = VLC_TWOCC('M','B');
     bmp_fileheader.bfOffBits = sizeof(BITMAPFILEHEADER) +
                                sizeof(BITMAPINFOHEADER);