// Copyright (C) 2011 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// A simple graph that displays the raw camera stream.

@setting autoBranch = "synced";

// Imports ---------------------------------------------------
@import android.filterpacks.videosrc;
@import android.filterpacks.ui;
@import android.filterpacks.videosink;
@import android.filterpacks.base;

// Externals -------------------------------------------------
@external cameraView;
@external outputFileName;
@external cameraId;

@set widthLoc = 320;
@set heightLoc = 240;

// Filters ---------------------------------------------------
@filter CameraSource camera {
    id = $cameraId;
    width = $widthLoc;
    height = $heightLoc;
    waitForNewFrame = false;
}

@filter MediaEncoderFilter mediaEncoder {
    width = $widthLoc;
    height = $heightLoc;
    outputFile = $outputFileName;
}

@filter SurfaceRenderFilter renderer {
  surfaceView = $cameraView;
}


// Connections -----------------------------------------------
// Camera->Preview, Camera->Encoder
// Render camera output on to a surface
@connect camera[video] => renderer[frame];
// Also pass it to an encoder
@connect camera[video] => mediaEncoder[videoframe];
