* -------------------------------------------------------------------------
* This file is part of the MultimodalSDK project.
* Copyright (c) 2025 Huawei Technologies Co.,Ltd.
*
* MultimodalSDK is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* -------------------------------------------------------------------------
* Description: video file for python.
* Author: ACC SDK
* Create: 2025
* History: NA
*/
#include "PyVideo.h"
#include "acc/video/Video.h"
#include "acc/ErrorCode.h"
#include "acc/image/Image.h"
namespace PyAcc {
std::vector<Image> video_decode(const char* path, const char* device, const std::set<uint32_t>& frameIndices,
int sampleNum)
{
std::vector<Acc::Image> accImageResult;
auto ret = Acc::VideoDecode(path, device, accImageResult, frameIndices, sampleNum);
if (ret != 0) {
throw std::runtime_error("Failed to decode video, please see above log for detail.");
}
std::vector<Image> result;
result.reserve(accImageResult.size());
for (auto& accImage : accImageResult) {
Image pyImage;
pyImage.SetImage(accImage);
result.push_back(std::move(pyImage));
}
return result;
}
}