Revision: 8594
          http://playerstage.svn.sourceforge.net/playerstage/?rev=8594&view=rev
Author:   hsujohnhsu
Date:     2010-03-18 22:18:46 +0000 (Thu, 18 Mar 2010)

Log Message:
-----------
check if source is null before bayer conversion.  this is a problem when 
starting sim in paused mode, resuming breaks it

Modified Paths:
--------------
    code/gazebo/trunk/server/rendering/OgreCamera.cc

Modified: code/gazebo/trunk/server/rendering/OgreCamera.cc
===================================================================
--- code/gazebo/trunk/server/rendering/OgreCamera.cc    2010-03-18 02:55:26 UTC 
(rev 8593)
+++ code/gazebo/trunk/server/rendering/OgreCamera.cc    2010-03-18 22:18:46 UTC 
(rev 8594)
@@ -761,102 +761,104 @@
 /// post process, convert from rgb to bayer
 void OgreCamera::ConvertRGBToBAYER(unsigned char* dst, unsigned char* src, 
std::string format,int width, int height)
 {
-  // do last minute conversion if Bayer pattern is requested, go from R8G8B8
-  if (format == "BAYER_RGGB8")
+  if (src)
   {
-    for (int i=0;i<width;i++)
+    // do last minute conversion if Bayer pattern is requested, go from R8G8B8
+    if (format == "BAYER_RGGB8")
     {
-      for (int j=0;j<height;j++)
+      for (int i=0;i<width;i++)
       {
-        //
-        // RG
-        // GB
-        //
-        // determine position
-        if (j%2) // even column
-          if (i%2) // even row, red
-            dst[i+j*width] = src[i*3+j*width*3+0];
-          else // odd row, green
-            dst[i+j*width] = src[i*3+j*width*3+1];
-        else // odd column
-          if (i%2) // even row, green
-            dst[i+j*width] = src[i*3+j*width*3+1];
-          else // odd row, blue
-            dst[i+j*width] = src[i*3+j*width*3+2];
+        for (int j=0;j<height;j++)
+        {
+          //
+          // RG
+          // GB
+          //
+          // determine position
+          if (j%2) // even column
+            if (i%2) // even row, red
+              dst[i+j*width] = src[i*3+j*width*3+0];
+            else // odd row, green
+              dst[i+j*width] = src[i*3+j*width*3+1];
+          else // odd column
+            if (i%2) // even row, green
+              dst[i+j*width] = src[i*3+j*width*3+1];
+            else // odd row, blue
+              dst[i+j*width] = src[i*3+j*width*3+2];
+        }
       }
     }
-  }
-  else if (format == "BAYER_BGGR8")
-  {
-    for (int i=0;i<width;i++)
+    else if (format == "BAYER_BGGR8")
     {
-      for (int j=0;j<height;j++)
+      for (int i=0;i<width;i++)
       {
-        //
-        // BG
-        // GR
-        //
-        // determine position
-        if (j%2) // even column
-          if (i%2) // even row, blue
-            dst[i+j*width] = src[i*3+j*width*3+2];
-          else // odd row, green
-            dst[i+j*width] = src[i*3+j*width*3+1];
-        else // odd column
-          if (i%2) // even row, green
-            dst[i+j*width] = src[i*3+j*width*3+1];
-          else // odd row, red
-            dst[i+j*width] = src[i*3+j*width*3+0];
+        for (int j=0;j<height;j++)
+        {
+          //
+          // BG
+          // GR
+          //
+          // determine position
+          if (j%2) // even column
+            if (i%2) // even row, blue
+              dst[i+j*width] = src[i*3+j*width*3+2];
+            else // odd row, green
+              dst[i+j*width] = src[i*3+j*width*3+1];
+          else // odd column
+            if (i%2) // even row, green
+              dst[i+j*width] = src[i*3+j*width*3+1];
+            else // odd row, red
+              dst[i+j*width] = src[i*3+j*width*3+0];
+        }
       }
     }
-  }
-  else if (format == "BAYER_GBRG8")
-  {
-    for (int i=0;i<width;i++)
+    else if (format == "BAYER_GBRG8")
     {
-      for (int j=0;j<height;j++)
+      for (int i=0;i<width;i++)
       {
-        //
-        // GB
-        // RG
-        //
-        // determine position
-        if (j%2) // even column
-          if (i%2) // even row, green
-            dst[i+j*width] = src[i*3+j*width*3+1];
-          else // odd row, blue
-            dst[i+j*width] = src[i*3+j*width*3+2];
-        else // odd column
-          if (i%2) // even row, red
-            dst[i+j*width] = src[i*3+j*width*3+0];
-          else // odd row, green
-            dst[i+j*width] = src[i*3+j*width*3+1];
+        for (int j=0;j<height;j++)
+        {
+          //
+          // GB
+          // RG
+          //
+          // determine position
+          if (j%2) // even column
+            if (i%2) // even row, green
+              dst[i+j*width] = src[i*3+j*width*3+1];
+            else // odd row, blue
+              dst[i+j*width] = src[i*3+j*width*3+2];
+          else // odd column
+            if (i%2) // even row, red
+              dst[i+j*width] = src[i*3+j*width*3+0];
+            else // odd row, green
+              dst[i+j*width] = src[i*3+j*width*3+1];
+        }
       }
     }
-  }
-  else if (format == "BAYER_GRBG8")
-  {
-    for (int i=0;i<width;i++)
+    else if (format == "BAYER_GRBG8")
     {
-      for (int j=0;j<height;j++)
+      for (int i=0;i<width;i++)
       {
-        //
-        // GR
-        // BG
-        //
-        // determine position
-        if (j%2) // even column
-          if (i%2) // even row, green
-            dst[i+j*width] = src[i*3+j*width*3+1];
-          else // odd row, red
-            dst[i+j*width] = src[i*3+j*width*3+0];
-        else // odd column
-          if (i%2) // even row, blue
-            dst[i+j*width] = src[i*3+j*width*3+2];
-          else // odd row, green
-            dst[i+j*width] = src[i*3+j*width*3+1];
+        for (int j=0;j<height;j++)
+        {
+          //
+          // GR
+          // BG
+          //
+          // determine position
+          if (j%2) // even column
+            if (i%2) // even row, green
+              dst[i+j*width] = src[i*3+j*width*3+1];
+            else // odd row, red
+              dst[i+j*width] = src[i*3+j*width*3+0];
+          else // odd column
+            if (i%2) // even row, blue
+              dst[i+j*width] = src[i*3+j*width*3+2];
+            else // odd row, green
+              dst[i+j*width] = src[i*3+j*width*3+1];
+        }
       }
     }
   }
-
 }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to