1fa7767c5Sopenharmony_ci/* 2fa7767c5Sopenharmony_ci * Copyright (c) 2021-2021 Huawei Device Co., Ltd. 3fa7767c5Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fa7767c5Sopenharmony_ci * you may not use this file except in compliance with the License. 5fa7767c5Sopenharmony_ci * You may obtain a copy of the License at 6fa7767c5Sopenharmony_ci * 7fa7767c5Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fa7767c5Sopenharmony_ci * 9fa7767c5Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fa7767c5Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fa7767c5Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fa7767c5Sopenharmony_ci * See the License for the specific language governing permissions and 13fa7767c5Sopenharmony_ci * limitations under the License. 14fa7767c5Sopenharmony_ci */ 15fa7767c5Sopenharmony_ci 16fa7767c5Sopenharmony_ci#include "UtDemuxerTest1.h" 17fa7767c5Sopenharmony_ci 18fa7767c5Sopenharmony_ciusing namespace OHOS::Media::Plugin; 19fa7767c5Sopenharmony_ci 20fa7767c5Sopenharmony_cistatic int Sniff(const std::string& name, std::shared_ptr<DataSource> dataSource) 21fa7767c5Sopenharmony_ci{ 22fa7767c5Sopenharmony_ci int bufferSize = 16; 23fa7767c5Sopenharmony_ci auto bufData = Buffer::CreateDefaultBuffer(BufferMetaType::AUDIO, bufferSize); 24fa7767c5Sopenharmony_ci if (dataSource->ReadAt(0, bufData, bufferSize) == Status::OK) { 25fa7767c5Sopenharmony_ci const uint8_t* data = bufData->GetMemory()->GetReadOnlyData(); 26fa7767c5Sopenharmony_ci if (data[0] == 'U' && data[1] == 't') { 27fa7767c5Sopenharmony_ci return 100; // 100 28fa7767c5Sopenharmony_ci } 29fa7767c5Sopenharmony_ci } 30fa7767c5Sopenharmony_ci return 0; 31fa7767c5Sopenharmony_ci} 32fa7767c5Sopenharmony_ci 33fa7767c5Sopenharmony_cistatic Status RegisterPlugins(const std::shared_ptr<Register>& reg) 34fa7767c5Sopenharmony_ci{ 35fa7767c5Sopenharmony_ci DemuxerPluginDef regInfo; 36fa7767c5Sopenharmony_ci regInfo.name = "UtDemuxerTest1"; 37fa7767c5Sopenharmony_ci regInfo.description = "unit test demuxer test1"; 38fa7767c5Sopenharmony_ci regInfo.rank = 100; // 100 39fa7767c5Sopenharmony_ci regInfo.creator = [](const std::string& name) -> std::shared_ptr<DemuxerPlugin> { 40fa7767c5Sopenharmony_ci return std::make_shared<UtDemuxerTest1>(name); 41fa7767c5Sopenharmony_ci }; 42fa7767c5Sopenharmony_ci regInfo.sniffer = Sniff; 43fa7767c5Sopenharmony_ci return reg->AddPlugin(regInfo); 44fa7767c5Sopenharmony_ci} 45fa7767c5Sopenharmony_ci 46fa7767c5Sopenharmony_ciPLUGIN_DEFINITION(UtDemuxerTest1, LicenseType::LGPL, RegisterPlugins, [] {}); 47fa7767c5Sopenharmony_ci 48fa7767c5Sopenharmony_ciStatus UtDemuxerTest1::SetDataSource(const std::shared_ptr<DataSource> &source) 49fa7767c5Sopenharmony_ci{ 50fa7767c5Sopenharmony_ci return Status::OK; 51fa7767c5Sopenharmony_ci} 52fa7767c5Sopenharmony_ci 53fa7767c5Sopenharmony_ciStatus UtDemuxerTest1::GetMediaInfo(MediaInfo &mediaInfo) 54fa7767c5Sopenharmony_ci{ 55fa7767c5Sopenharmony_ci return Status::OK; 56fa7767c5Sopenharmony_ci} 57fa7767c5Sopenharmony_ci 58fa7767c5Sopenharmony_cisize_t UtDemuxerTest1::GetTrackCount() 59fa7767c5Sopenharmony_ci{ 60fa7767c5Sopenharmony_ci return 0; 61fa7767c5Sopenharmony_ci} 62fa7767c5Sopenharmony_ci 63fa7767c5Sopenharmony_ciStatus UtDemuxerTest1::SelectTrack(int32_t trackId) 64fa7767c5Sopenharmony_ci{ 65fa7767c5Sopenharmony_ci return Status::OK; 66fa7767c5Sopenharmony_ci} 67fa7767c5Sopenharmony_ci 68fa7767c5Sopenharmony_ciStatus UtDemuxerTest1::UnselectTrack(int32_t trackId) 69fa7767c5Sopenharmony_ci{ 70fa7767c5Sopenharmony_ci return Status::OK; 71fa7767c5Sopenharmony_ci} 72fa7767c5Sopenharmony_ci 73fa7767c5Sopenharmony_ciStatus UtDemuxerTest1::GetSelectedTracks(std::vector<int32_t> &trackIds) 74fa7767c5Sopenharmony_ci{ 75fa7767c5Sopenharmony_ci return Status::OK; 76fa7767c5Sopenharmony_ci} 77fa7767c5Sopenharmony_ci 78fa7767c5Sopenharmony_ciStatus UtDemuxerTest1::ReadFrame(Buffer &buffer, int32_t timeOutMs) 79fa7767c5Sopenharmony_ci{ 80fa7767c5Sopenharmony_ci return Status::OK; 81fa7767c5Sopenharmony_ci} 82fa7767c5Sopenharmony_ci 83fa7767c5Sopenharmony_ciStatus UtDemuxerTest1::SeekTo(int32_t trackId, int64_t seekTime, SeekMode mode, int64_t& realSeekTime) 84fa7767c5Sopenharmony_ci{ 85fa7767c5Sopenharmony_ci (void)trackId; 86fa7767c5Sopenharmony_ci (void)seekTime; 87fa7767c5Sopenharmony_ci (void)mode; 88fa7767c5Sopenharmony_ci (void)realSeekTime; 89fa7767c5Sopenharmony_ci return Status::OK; 90fa7767c5Sopenharmony_ci} 91fa7767c5Sopenharmony_ci 92fa7767c5Sopenharmony_cistd::shared_ptr<Allocator> UtDemuxerTest1::GetAllocator() 93fa7767c5Sopenharmony_ci{ 94fa7767c5Sopenharmony_ci return std::shared_ptr<Allocator>(); 95fa7767c5Sopenharmony_ci} 96fa7767c5Sopenharmony_ci 97fa7767c5Sopenharmony_ciStatus UtDemuxerTest1::SetCallback(Callback* cb) 98fa7767c5Sopenharmony_ci{ 99fa7767c5Sopenharmony_ci return Status::OK; 100fa7767c5Sopenharmony_ci} 101fa7767c5Sopenharmony_ci 102