Mirroring issue in Background Replacer

The MediaSource is set to rotate so that it adjusts to the
rotation of the device, and displays upright. The backdropper does not
have to do any rotation except for the mirroring in case of front
camera.
Bug: 5490654

Change-Id: Iaa3a82dd98f9cf428fb0d0b65e1175b31d37d2b1
diff --git a/res/raw/backdropper.graph b/res/raw/backdropper.graph
index a903f12..ef470f8 100644
--- a/res/raw/backdropper.graph
+++ b/res/raw/backdropper.graph
@@ -61,6 +61,7 @@
 @filter BackDropperFilter replacer {
   autowbToggle = 1;
   learningDoneListener = $learningDoneListener;
+  orientation = $orientation;
 }
 
 // Display output
diff --git a/src/com/android/camera/EffectsRecorder.java b/src/com/android/camera/EffectsRecorder.java
index bb7c813..737e828 100644
--- a/src/com/android/camera/EffectsRecorder.java
+++ b/src/com/android/camera/EffectsRecorder.java
@@ -514,6 +514,13 @@
                 Filter backgroundSrc = mRunner.getGraph().getFilter("background");
                 backgroundSrc.setInputValue("sourceUrl",
                                             (String)mEffectParameter);
+                // For front camera, the background video needs to be mirrored in the
+                // backdropper filter
+                if (mCameraFacing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
+                    Filter replacer = mRunner.getGraph().getFilter("replacer");
+                    replacer.setInputValue("mirrorBg", true);
+                    if (mLogVerbose) Log.v(TAG, "Setting the background to be mirrored");
+                }
                 break;
             default:
                 break;