Files
DKWechatHelper/dkhelper/dkhelperDylib/QGVAPlayer/class/Controllers/Decoders/QGBaseDecoder.m
T
DKJone 888af8954e [v1.0.7](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.7) / 2021-01-29
what's new
* 动态启动图
* 动态聊天背景
* 支持8.0.1
* 更新越狱包8.0.1
* 更新已注入助手的8.0.1未签名包
* 更新越狱源安装包
2021-01-29 16:35:34 +08:00

71 lines
1.8 KiB
Objective-C

// QGBaseDecoder.m
// Tencent is pleased to support the open source community by making vap available.
//
// Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
//
// Licensed under the MIT License (the "License"); you may not use this file except in
// compliance with the License. You may obtain a copy of the License at
//
// http://opensource.org/licenses/MIT
//
// Unless required by applicable law or agreed to in writing, software distributed under the License is
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
// either express or implied. See the License for the specific language governing permissions and
// limitations under the License.
#import "QGBaseDecoder.h"
#import "QGAnimatedImageDecodeThreadPool.h"
@interface QGBaseDecoder() {
QGBaseDFileInfo *_fileInfo;
}
@end
@implementation QGBaseDecoder
- (instancetype)initWith:(QGBaseDFileInfo *)fileInfo error:(NSError **)error {
if (self = [super init]) {
_currentDecodeFrame = -1;
_fileInfo = fileInfo;
_fileInfo.occupiedCount ++;
}
return self;
}
- (QGBaseDFileInfo *)fileInfo {
return _fileInfo;
}
/**
由具体子类实现
该方法在decodeframe方法即将被调用时调用,如果返回YES则停止解码工作
@param nextFrameIndex 将要解码的帧索引
@return 是否需要继续解码
*/
- (BOOL)shouldStopDecode:(NSInteger)nextFrameIndex {
// No implementation here. Meant to be overriden in subclass.
return NO;
}
- (BOOL)isFrameIndexBeyondEnd:(NSInteger)frameIndex {
return NO;
}
/**
在专用线程内解码指定帧并放入对应的缓冲区内
@param frameIndex 帧索引
@param buffers 缓冲
*/
- (void)decodeFrame:(NSInteger)frameIndex buffers:(NSMutableArray *)buffers {
// No implementation here. Meant to be overriden in subclass.
}
@end