1094332d3Sopenharmony_ci/*
2094332d3Sopenharmony_ci * Copyright 2023 Shenzhen Kaihong DID Co., Ltd.
3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License.
5094332d3Sopenharmony_ci * You may obtain a copy of the License at
6094332d3Sopenharmony_ci *
7094332d3Sopenharmony_ci * 		http://www.apache.org/licenses/LICENSE-2.0
8094332d3Sopenharmony_ci *
9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and
13094332d3Sopenharmony_ci * limitations under the License.
14094332d3Sopenharmony_ci */
15094332d3Sopenharmony_ci
16094332d3Sopenharmony_ci#ifndef CODEC_HDI_CALLBACK_H
17094332d3Sopenharmony_ci#define CODEC_HDI_CALLBACK_H
18094332d3Sopenharmony_ci#include "icodec_hdi_callback_base.h"
19094332d3Sopenharmony_ci#include "v3_0/icodec_callback.h"
20094332d3Sopenharmony_ciclass CodecHdiCallback : public OHOS::HDI::Codec::V3_0::ICodecCallback {
21094332d3Sopenharmony_cipublic:
22094332d3Sopenharmony_ci    CodecHdiCallback(std::shared_ptr<ICodecHdiCallBackBase> codecHdi);
23094332d3Sopenharmony_ci    virtual ~CodecHdiCallback() = default;
24094332d3Sopenharmony_ci
25094332d3Sopenharmony_ci    int32_t EventHandler(OHOS::HDI::Codec::V3_0::CodecEventType event,
26094332d3Sopenharmony_ci        const OHOS::HDI::Codec::V3_0::EventInfo &info) override;
27094332d3Sopenharmony_ci
28094332d3Sopenharmony_ci    int32_t EmptyBufferDone(int64_t appData, const OHOS::HDI::Codec::V3_0::OmxCodecBuffer &buffer) override;
29094332d3Sopenharmony_ci
30094332d3Sopenharmony_ci    int32_t FillBufferDone(int64_t appData, const OHOS::HDI::Codec::V3_0::OmxCodecBuffer &buffer) override;
31094332d3Sopenharmony_ci
32094332d3Sopenharmony_ciprivate:
33094332d3Sopenharmony_ci    std::shared_ptr<ICodecHdiCallBackBase> codecHdi_;
34094332d3Sopenharmony_ci};
35094332d3Sopenharmony_ci#endif  // CODEC_HDI_CALLBACK_H