• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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