OSDN Git Service

The AVC software decoder always aligns the decoded dimensions to 16 pixel boundaries...
authorAndreas Huber <andih@google.com>
Fri, 29 Jan 2010 21:28:48 +0000 (13:28 -0800)
committerAndreas Huber <andih@google.com>
Fri, 29 Jan 2010 21:28:48 +0000 (13:28 -0800)
media/libstagefright/codecs/avc/dec/AVCDecoder.cpp

index 36272ea..aa2a3d1 100644 (file)
@@ -322,8 +322,10 @@ status_t AVCDecoder::read(
                 crop_top = crop_left = 0;
             }
 
-            mFormat->setInt32(kKeyWidth, crop_right - crop_left + 1);
-            mFormat->setInt32(kKeyHeight, crop_bottom - crop_top + 1);
+            int32_t aligned_width = (crop_right - crop_left + 1 + 15) & ~15;
+            int32_t aligned_height = (crop_bottom - crop_top + 1 + 15) & ~15;
+            mFormat->setInt32(kKeyWidth, aligned_width);
+            mFormat->setInt32(kKeyHeight, aligned_height);
 
             mInputBuffer->release();
             mInputBuffer = NULL;