mirror of
https://github.com/DKJone/DKWechatHelper.git
synced 2025-05-25 20:36:08 +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
|