mirror of
https://github.com/DKJone/DKWechatHelper.git
synced 2026-09-19 23:40:16 +08:00
71 lines
1.8 KiB
Objective-C
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
|