1 /*
2 * Copyright (C) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "avcodec_errors.h"
17 #include "avcodec_log.h"
18 #include "codec_drm_decrypt.h"
19
20 namespace {
21 constexpr OHOS::HiviewDFX::HiLogLabel LABEL = {LOG_CORE, LOG_DOMAIN_TEST, "CodecServer"};
22 } // namespace
23
24 namespace OHOS {
25 namespace MediaAVCodec {
DrmGetSkipClearBytes(uint32_t & skipBytes) const26 void CodecDrmDecrypt::DrmGetSkipClearBytes(uint32_t &skipBytes) const
27 {
28 (void)skipBytes;
29 }
30
DrmGetNalTypeAndIndex(const uint8_t * data,uint32_t dataSize,uint8_t & nalType,uint32_t & posIndex) const31 int32_t CodecDrmDecrypt::DrmGetNalTypeAndIndex(const uint8_t *data, uint32_t dataSize, uint8_t &nalType,
32 uint32_t &posIndex) const
33 {
34 (void)data;
35 (void)dataSize;
36 (void)nalType;
37 (void)posIndex;
38 return AVCS_ERR_OK;
39 }
40
DrmGetSyncHeaderIndex(const uint8_t * data,uint32_t dataSize,uint32_t & posIndex)41 void CodecDrmDecrypt::DrmGetSyncHeaderIndex(const uint8_t *data, uint32_t dataSize, uint32_t &posIndex)
42 {
43 (void)data;
44 (void)dataSize;
45 (void)posIndex;
46 }
47
DrmGetFinalNalTypeAndIndex(const uint8_t * data,uint32_t dataSize,uint32_t & posStartIndex,uint32_t & posEndIndex) const48 uint8_t CodecDrmDecrypt::DrmGetFinalNalTypeAndIndex(const uint8_t *data, uint32_t dataSize, uint32_t &posStartIndex,
49 uint32_t &posEndIndex) const
50 {
51 (void)data;
52 (void)dataSize;
53 (void)posStartIndex;
54 (void)posEndIndex;
55 return 0;
56 }
57
DrmRemoveAmbiguityBytes(uint8_t * data,uint32_t & posEndIndex,uint32_t offset,uint32_t & dataSize)58 void CodecDrmDecrypt::DrmRemoveAmbiguityBytes(uint8_t *data, uint32_t &posEndIndex, uint32_t offset, uint32_t &dataSize)
59 {
60 (void)data;
61 (void)posEndIndex;
62 (void)offset;
63 (void)dataSize;
64 }
65
DrmModifyCencInfo(std::shared_ptr<AVBuffer> inBuf,uint32_t & dataSize,uint8_t isAmbiguity,MetaDrmCencInfo * cencInfo) const66 void CodecDrmDecrypt::DrmModifyCencInfo(std::shared_ptr<AVBuffer> inBuf, uint32_t &dataSize, uint8_t isAmbiguity,
67 MetaDrmCencInfo *cencInfo) const
68 {
69 (void)inBuf;
70 (void)dataSize;
71 (void)isAmbiguity;
72 (void)cencInfo;
73 }
74
SetDrmAlgoAndBlocks(uint8_t algo,MetaDrmCencInfo * cencInfo)75 void CodecDrmDecrypt::SetDrmAlgoAndBlocks(uint8_t algo, MetaDrmCencInfo *cencInfo)
76 {
77 (void)algo;
78 (void)cencInfo;
79 }
80
DrmFindAvsCeiNalUnit(const uint8_t * data,uint32_t dataSize,uint32_t & ceiStartPos,uint32_t index)81 int CodecDrmDecrypt::DrmFindAvsCeiNalUnit(const uint8_t *data, uint32_t dataSize, uint32_t &ceiStartPos,
82 uint32_t index)
83 {
84 (void)data;
85 (void)dataSize;
86 (void)ceiStartPos;
87 (void)index;
88 return AVCS_ERR_OK;
89 }
90
DrmFindHevcCeiNalUnit(const uint8_t * data,uint32_t dataSize,uint32_t & ceiStartPos,uint32_t index)91 int CodecDrmDecrypt::DrmFindHevcCeiNalUnit(const uint8_t *data, uint32_t dataSize, uint32_t &ceiStartPos,
92 uint32_t index)
93 {
94 (void)data;
95 (void)dataSize;
96 (void)ceiStartPos;
97 (void)index;
98 return AVCS_ERR_OK;
99 }
100
DrmFindH264CeiNalUnit(const uint8_t * data,uint32_t dataSize,uint32_t & ceiStartPos,uint32_t index)101 int CodecDrmDecrypt::DrmFindH264CeiNalUnit(const uint8_t *data, uint32_t dataSize, uint32_t &ceiStartPos,
102 uint32_t index)
103 {
104 (void)data;
105 (void)dataSize;
106 (void)ceiStartPos;
107 (void)index;
108 return AVCS_ERR_OK;
109 }
110
DrmFindCeiNalUnit(const uint8_t * data,uint32_t dataSize,uint32_t & ceiStartPos,uint32_t index) const111 int CodecDrmDecrypt::DrmFindCeiNalUnit(const uint8_t *data, uint32_t dataSize, uint32_t &ceiStartPos,
112 uint32_t index) const
113 {
114 (void)data;
115 (void)dataSize;
116 (void)ceiStartPos;
117 (void)index;
118 return AVCS_ERR_OK;
119 }
120
DrmFindCeiPos(const uint8_t * data,uint32_t dataSize,uint32_t & ceiStartPos,uint32_t & ceiEndPos) const121 int CodecDrmDecrypt::DrmFindCeiPos(const uint8_t *data, uint32_t dataSize, uint32_t &ceiStartPos,
122 uint32_t &ceiEndPos) const
123 {
124 (void)data;
125 (void)dataSize;
126 (void)ceiStartPos;
127 (void)ceiEndPos;
128 return AVCS_ERR_OK;
129 }
130
DrmFindEncryptionFlagPos(const uint8_t * data,uint32_t dataSize,uint32_t & pos)131 void CodecDrmDecrypt::DrmFindEncryptionFlagPos(const uint8_t *data, uint32_t dataSize, uint32_t &pos)
132 {
133 (void)data;
134 (void)dataSize;
135 (void)pos;
136 }
137
DrmGetKeyId(uint8_t * data,uint32_t & dataSize,uint32_t & pos,MetaDrmCencInfo * cencInfo)138 int CodecDrmDecrypt::DrmGetKeyId(uint8_t *data, uint32_t &dataSize, uint32_t &pos, MetaDrmCencInfo *cencInfo)
139 {
140 (void)data;
141 (void)dataSize;
142 (void)pos;
143 (void)cencInfo;
144 return AVCS_ERR_OK;
145 }
146
DrmGetKeyIv(const uint8_t * data,uint32_t dataSize,uint32_t & pos,MetaDrmCencInfo * cencInfo)147 int CodecDrmDecrypt::DrmGetKeyIv(const uint8_t *data, uint32_t dataSize, uint32_t &pos, MetaDrmCencInfo *cencInfo)
148 {
149 (void)data;
150 (void)dataSize;
151 (void)pos;
152 (void)cencInfo;
153 return AVCS_ERR_OK;
154 }
155
DrmParseDrmDescriptor(const uint8_t * data,uint32_t dataSize,uint32_t & pos,uint8_t drmDescriptorFlag,MetaDrmCencInfo * cencInfo)156 int CodecDrmDecrypt::DrmParseDrmDescriptor(const uint8_t *data, uint32_t dataSize, uint32_t &pos,
157 uint8_t drmDescriptorFlag, MetaDrmCencInfo *cencInfo)
158 {
159 (void)data;
160 (void)dataSize;
161 (void)pos;
162 (void)drmDescriptorFlag;
163 (void)cencInfo;
164 return AVCS_ERR_OK;
165 }
166
DrmSetKeyInfo(const uint8_t * data,uint32_t dataSize,uint32_t ceiStartPos,uint8_t & isAmbiguity,MetaDrmCencInfo * cencInfo)167 void CodecDrmDecrypt::DrmSetKeyInfo(const uint8_t *data, uint32_t dataSize, uint32_t ceiStartPos,
168 uint8_t &isAmbiguity, MetaDrmCencInfo *cencInfo)
169 {
170 (void)data;
171 (void)dataSize;
172 (void)ceiStartPos;
173 (void)isAmbiguity;
174 (void)cencInfo;
175 }
176
DrmGetCencInfo(std::shared_ptr<AVBuffer> inBuf,uint32_t dataSize,uint8_t & isAmbiguity,MetaDrmCencInfo * cencInfo) const177 void CodecDrmDecrypt::DrmGetCencInfo(std::shared_ptr<AVBuffer> inBuf, uint32_t dataSize, uint8_t &isAmbiguity,
178 MetaDrmCencInfo *cencInfo) const
179 {
180 (void)inBuf;
181 (void)dataSize;
182 (void)isAmbiguity;
183 (void)cencInfo;
184 }
185
DrmVideoCencDecrypt(std::shared_ptr<AVBuffer> & inBuf,std::shared_ptr<AVBuffer> & outBuf,uint32_t & dataSize)186 int32_t CodecDrmDecrypt::DrmVideoCencDecrypt(std::shared_ptr<AVBuffer> &inBuf, std::shared_ptr<AVBuffer> &outBuf,
187 uint32_t &dataSize)
188 {
189 (void)inBuf;
190 (void)outBuf;
191 (void)dataSize;
192 return 0;
193 }
194
DrmAudioCencDecrypt(std::shared_ptr<AVBuffer> & inBuf,std::shared_ptr<AVBuffer> & outBuf,uint32_t & dataSize)195 int32_t CodecDrmDecrypt::DrmAudioCencDecrypt(std::shared_ptr<AVBuffer> &inBuf, std::shared_ptr<AVBuffer> &outBuf,
196 uint32_t &dataSize)
197 {
198 (void)inBuf;
199 (void)outBuf;
200 (void)dataSize;
201 return 0;
202 }
203
SetCodecName(const std::string & codecName)204 void CodecDrmDecrypt::SetCodecName(const std::string &codecName)
205 {
206 (void)codecName;
207 }
208
GetCodingType()209 void CodecDrmDecrypt::GetCodingType()
210 {
211 }
212
SetDecryptionConfig(const sptr<DrmStandard::IMediaKeySessionService> & keySession,const bool svpFlag)213 void CodecDrmDecrypt::SetDecryptionConfig(const sptr<DrmStandard::IMediaKeySessionService> &keySession,
214 const bool svpFlag)
215 {
216 (void)keySession;
217 (void)svpFlag;
218 }
219
SetDrmBuffer(const std::shared_ptr<AVBuffer> & inBuf,const std::shared_ptr<AVBuffer> & outBuf,DrmBuffer & inDrmBuffer,DrmBuffer & outDrmBuffer)220 int32_t CodecDrmDecrypt::SetDrmBuffer(const std::shared_ptr<AVBuffer> &inBuf, const std::shared_ptr<AVBuffer> &outBuf,
221 DrmBuffer &inDrmBuffer, DrmBuffer &outDrmBuffer)
222 {
223 AVCODEC_LOGD("CodecDrmDecrypt SetDrmBuffer");
224 (void)inBuf;
225 (void)outBuf;
226 (void)inDrmBuffer;
227 (void)outDrmBuffer;
228 return AVCS_ERR_OK;
229 }
230
DecryptMediaData(const MetaDrmCencInfo * const cencInfo,std::shared_ptr<AVBuffer> & inBuf,std::shared_ptr<AVBuffer> & outBuf)231 int32_t CodecDrmDecrypt::DecryptMediaData(const MetaDrmCencInfo *const cencInfo, std::shared_ptr<AVBuffer> &inBuf,
232 std::shared_ptr<AVBuffer> &outBuf)
233 {
234 AVCODEC_LOGI("CodecDrmDecrypt DecryptMediaData");
235 (void)cencInfo;
236 (void)inBuf;
237 (void)outBuf;
238 return AVCS_ERR_OK;
239 }
240
241 } // namespace MediaAVCodec
242 } // namespace OHOS
243