You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
4.2 KiB
162 lines
4.2 KiB
/*
|
|
* Copyright (c) 2018-2021 Taner Sener
|
|
*
|
|
* This file is part of FFmpegKit.
|
|
*
|
|
* FFmpegKit is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* FFmpegKit is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with FFmpegKit. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#import "StreamInformation.h"
|
|
|
|
NSString* const StreamKeyIndex = @"index";
|
|
NSString* const StreamKeyType = @"codec_type";
|
|
NSString* const StreamKeyCodec = @"codec_name";
|
|
NSString* const StreamKeyCodecLong = @"codec_long_name";
|
|
NSString* const StreamKeyFormat = @"pix_fmt";
|
|
NSString* const StreamKeyWidth = @"width";
|
|
NSString* const StreamKeyHeight = @"height";
|
|
NSString* const StreamKeyBitRate = @"bit_rate";
|
|
NSString* const StreamKeySampleRate = @"sample_rate";
|
|
NSString* const StreamKeySampleFormat = @"sample_fmt";
|
|
NSString* const StreamKeyChannelLayout = @"channel_layout";
|
|
NSString* const StreamKeySampleAspectRatio = @"sample_aspect_ratio";
|
|
NSString* const StreamKeyDisplayAspectRatio = @"display_aspect_ratio";
|
|
NSString* const StreamKeyAverageFrameRate = @"avg_frame_rate";
|
|
NSString* const StreamKeyRealFrameRate = @"r_frame_rate";
|
|
NSString* const StreamKeyTimeBase = @"time_base";
|
|
NSString* const StreamKeyCodecTimeBase = @"codec_time_base";
|
|
NSString* const StreamKeyTags = @"tags";
|
|
|
|
@implementation StreamInformation {
|
|
|
|
/**
|
|
* Stores all properties.
|
|
*/
|
|
NSDictionary *dictionary;
|
|
|
|
}
|
|
|
|
- (instancetype)init:(NSDictionary*)streamDictionary {
|
|
self = [super init];
|
|
if (self) {
|
|
dictionary = streamDictionary;
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (NSNumber*)getIndex {
|
|
return [self getNumberProperty:StreamKeyIndex];
|
|
}
|
|
|
|
- (NSString*)getType {
|
|
return [self getStringProperty:StreamKeyType];
|
|
}
|
|
|
|
- (NSString*)getCodec {
|
|
return [self getStringProperty:StreamKeyCodec];
|
|
}
|
|
|
|
- (NSString*)getFullCodec {
|
|
return [self getStringProperty:StreamKeyCodecLong];
|
|
}
|
|
|
|
- (NSString*)getFormat {
|
|
return [self getStringProperty:StreamKeyFormat];
|
|
}
|
|
|
|
- (NSNumber*)getWidth {
|
|
return [self getNumberProperty:StreamKeyWidth];
|
|
}
|
|
|
|
- (NSNumber*)getHeight {
|
|
return [self getNumberProperty:StreamKeyHeight];
|
|
}
|
|
|
|
- (NSString*)getBitrate {
|
|
return [self getStringProperty:StreamKeyBitRate];
|
|
}
|
|
|
|
- (NSString*)getSampleRate {
|
|
return [self getStringProperty:StreamKeySampleRate];
|
|
}
|
|
|
|
- (NSString*)getSampleFormat {
|
|
return [self getStringProperty:StreamKeySampleFormat];
|
|
}
|
|
|
|
- (NSString*)getChannelLayout {
|
|
return [self getStringProperty:StreamKeyChannelLayout];
|
|
}
|
|
|
|
- (NSString*)getSampleAspectRatio {
|
|
return [self getStringProperty:StreamKeySampleAspectRatio];
|
|
}
|
|
|
|
- (NSString*)getDisplayAspectRatio {
|
|
return [self getStringProperty:StreamKeyDisplayAspectRatio];
|
|
}
|
|
|
|
- (NSString*)getAverageFrameRate {
|
|
return [self getStringProperty:StreamKeyAverageFrameRate];
|
|
}
|
|
|
|
- (NSString*)getRealFrameRate {
|
|
return [self getStringProperty:StreamKeyRealFrameRate];
|
|
}
|
|
|
|
- (NSString*)getTimeBase {
|
|
return [self getStringProperty:StreamKeyTimeBase];
|
|
}
|
|
|
|
- (NSString*)getCodecTimeBase {
|
|
return [self getStringProperty:StreamKeyCodecTimeBase];
|
|
}
|
|
|
|
- (NSDictionary*)getTags {
|
|
return [self getProperties:StreamKeyTags];
|
|
}
|
|
|
|
- (NSString*)getStringProperty:(NSString*)key {
|
|
NSDictionary* allProperties = [self getAllProperties];
|
|
if (allProperties == nil) {
|
|
return nil;
|
|
}
|
|
|
|
return allProperties[key];
|
|
}
|
|
|
|
- (NSNumber*)getNumberProperty:(NSString*)key {
|
|
NSDictionary* mediaProperties = [self getAllProperties];
|
|
if (mediaProperties == nil) {
|
|
return nil;
|
|
}
|
|
|
|
return mediaProperties[key];
|
|
}
|
|
|
|
- (NSDictionary*)getProperties:(NSString*)key {
|
|
NSDictionary* allProperties = [self getAllProperties];
|
|
if (allProperties == nil) {
|
|
return nil;
|
|
}
|
|
|
|
return allProperties[key];
|
|
}
|
|
|
|
- (NSDictionary*)getAllProperties {
|
|
return dictionary;
|
|
}
|
|
|
|
@end
|
|
|