DKWechatHelper/dkhelper/dkhelperDylib/QGVAPlayer/class/MP4Parser/QGMP4Parser.h
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

65 lines
2.5 KiB
Objective-C

// QGMP4Parser.h
// 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 <Foundation/Foundation.h>
#import "QGMP4Box.h"
@class QGMP4Parser;
@protocol QGMP4ParserDelegate <NSObject>
@optional
- (void)didParseMP4Box:(QGMP4Box *)box parser:(QGMP4Parser *)parser;
- (void)MP4FileDidFinishParse:(QGMP4Parser *)parser;
@end
@interface QGMP4Parser : NSObject
@property (nonatomic, strong) QGMP4Box *rootBox;
@property (nonatomic, strong) NSFileHandle *fileHandle;
@property (nonatomic, weak) id<QGMP4ParserDelegate> delegate;
- (instancetype)initWithFilePath:(NSString *)filePath;
- (void)parse;
- (NSData *)readDataForBox:(QGMP4Box *)box;
- (NSInteger)readValue:(const char*)bytes length:(NSInteger)length;
@end
@interface QGMP4ParserProxy : NSObject
- (instancetype)initWithFilePath:(NSString *)filePath;
@property (nonatomic, assign) NSInteger picWidth; //视频宽度
@property (nonatomic, assign) NSInteger picHeight; //视频高度
@property (nonatomic, assign) NSInteger fps; //视频fps
@property (nonatomic, assign) double duration; //视频时长
@property (nonatomic, strong) NSData *spsData; //sps
@property (nonatomic, strong) NSData *ppsData; //pps
@property (nonatomic, strong) NSArray *videoSamples; //所有帧数据,包含了位置和大小等信息
@property (nonatomic, strong) QGMP4Box *rootBox; //mp4文件根box
@property (nonatomic, strong) QGMP4TrackBox *videoTrackBox; //视频track
@property (nonatomic, strong) QGMP4TrackBox *audioTrackBox; //音频track
/** vps */
@property (nonatomic, strong) NSData *vpsData;
/** 视频流编码器ID类型 */
@property (nonatomic, assign) QGMP4VideoStreamCodecID videoCodecID;
- (void)parse;
- (NSData *)readPacketOfSample:(NSInteger)sampleIndex;
- (NSData *)readDataOfBox:(QGMP4Box *)box length:(NSInteger)length offset:(NSInteger)offset;
@end