/*
* Copyright (c) 2025 Huawei Device Co., Ltd.
* 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.
*/
package OHOS.CameraStandard;
import IStreamRepeatCallback;
import CameraTypes;
interface OHOS.IBufferProducer;
interface IStreamCommon;
sequenceable OHOS.IRemoteObject;
option_stub_hooks on;
interface IStreamRepeat extends IStreamCommon {
[ipccode 0] void Start();
[ipccode 1] void Stop();
[ipccode 2] void SetCallback([in] IStreamRepeatCallback callbackFunc);
[ipccode 3] void Release();
[ipccode 4] void AddDeferredSurface([in] IBufferProducer producer);
[ipccode 5] void ForkSketchStreamRepeat([in] int width, [in] int height, [out] IRemoteObject sketchStream, [in] float sketchRatio);
[ipccode 6] void RemoveSketchStreamRepeat();
[ipccode 7] void UpdateSketchRatio([in] float sketchRatio);
[ipccode 8] void SetFrameRate([in] int minFrameRate, [in] int maxFrameRate);
[ipccode 9] void EnableSecure([in] boolean isEnable);
[ipccode 10] void EnableStitching([in] boolean isEnable);
[ipccode 11] void SetMirror([in] boolean isEnable);
[ipccode 12] void AttachMetaSurface([in] IBufferProducer producer, [in] int videoMetaType);
[ipccode 13] void SetCameraRotation([in] boolean isEnable, [in] int rotation);
[ipccode 14] void SetCameraApi([in] unsigned int apiCompatibleVersion);
[ipccode 15] void GetMirror([out] boolean isEnable);
[ipccode 16] void UnSetCallback();
[ipccode 17] void SetOutputSettings([in] MovieSettings movieSettings);
[ipccode 18] void GetSupportedVideoCodecTypes([out] List<int> supportedVideoCodecTypes);
[ipccode 19] void SetBandwidthCompression([in] boolean isEnabled);
[ipccode 20] void RemoveDeferredSurface();
}