Correct crop size for av1 software encoder

When using surface crop size may be set to incorrect
value and cause errors when copying buffers.
To prevent that, encoder will set crop size to expected
image size.

Bug: b/279387842
Test: atest android.mediav2.cts.CodecEncoderSurfaceTest
(cherry picked from https://partner-android-review.googlesource.com/q/commit:b809f1038c21079acf84e3e85668ea7e8e211cf0)
Merged-In: I4631eb48f59fce19af4de0fb2be2ca0ec80ae8ae
Change-Id: I4631eb48f59fce19af4de0fb2be2ca0ec80ae8ae
diff --git a/media/codec2/components/aom/C2SoftAomEnc.cpp b/media/codec2/components/aom/C2SoftAomEnc.cpp
index e8b0506..e08bf43 100644
--- a/media/codec2/components/aom/C2SoftAomEnc.cpp
+++ b/media/codec2/components/aom/C2SoftAomEnc.cpp
@@ -636,11 +636,11 @@
         return;
     }
 
-    std::shared_ptr<const C2GraphicView> rView;
+    std::shared_ptr<C2GraphicView> rView;
     std::shared_ptr<C2Buffer> inputBuffer;
     if (!work->input.buffers.empty()) {
         inputBuffer = work->input.buffers[0];
-        rView = std::make_shared<const C2GraphicView>(
+        rView = std::make_shared<C2GraphicView>(
                 inputBuffer->data().graphicBlocks().front().map().get());
         if (rView->error() != C2_OK) {
             ALOGE("graphic view map err = %d", rView->error());
@@ -678,6 +678,10 @@
         return;
     }
 
+    //(b/279387842)
+    //workaround for incorrect crop size in view when using surface mode
+    rView->setCrop_be(C2Rect(mSize->width, mSize->height));
+
     if (!mHeadersReceived) {
         Av1Config av1_config;
         constexpr uint32_t header_length = 2048;