/* * Copyright (c) 2018-2022 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 . */ #ifndef FFMPEG_KIT_STREAM_INFORMATION_H #define FFMPEG_KIT_STREAM_INFORMATION_H #import extern NSString *const StreamKeyIndex; extern NSString *const StreamKeyType; extern NSString *const StreamKeyCodec; extern NSString *const StreamKeyCodecLong; extern NSString *const StreamKeyFormat; extern NSString *const StreamKeyWidth; extern NSString *const StreamKeyHeight; extern NSString *const StreamKeyBitRate; extern NSString *const StreamKeySampleRate; extern NSString *const StreamKeySampleFormat; extern NSString *const StreamKeyChannelLayout; extern NSString *const StreamKeySampleAspectRatio; extern NSString *const StreamKeyDisplayAspectRatio; extern NSString *const StreamKeyAverageFrameRate; extern NSString *const StreamKeyRealFrameRate; extern NSString *const StreamKeyTimeBase; extern NSString *const StreamKeyCodecTimeBase; extern NSString *const StreamKeyTags; /** * Stream information class. */ @interface StreamInformation : NSObject - (instancetype)init:(NSDictionary *)streamDictionary; /** * Returns stream index. * * @return stream index, starting from zero */ - (NSNumber *)getIndex; /** * Returns stream type. * * @return stream type; audio or video */ - (NSString *)getType; /** * Returns stream codec. * * @return stream codec */ - (NSString *)getCodec; /** * Returns stream codec in long format. * * @return stream codec with additional profile and mode information */ - (NSString *)getCodecLong; /** * Returns stream format. * * @return stream format */ - (NSString *)getFormat; /** * Returns width. * * @return width in pixels */ - (NSNumber *)getWidth; /** * Returns height. * * @return height in pixels */ - (NSNumber *)getHeight; /** * Returns bitrate. * * @return bitrate in kb/s */ - (NSString *)getBitrate; /** * Returns sample rate. * * @return sample rate in hz */ - (NSString *)getSampleRate; /** * Returns sample format. * * @return sample format */ - (NSString *)getSampleFormat; /** * Returns channel layout. * * @return channel layout */ - (NSString *)getChannelLayout; /** * Returns sample aspect ratio. * * @return sample aspect ratio */ - (NSString *)getSampleAspectRatio; /** * Returns display aspect ratio. * * @return display aspect ratio */ - (NSString *)getDisplayAspectRatio; /** * Returns average frame rate. * * @return average frame rate in fps */ - (NSString *)getAverageFrameRate; /** * Returns real frame rate. * * @return real frame rate in tbr */ - (NSString *)getRealFrameRate; /** * Returns time base. * * @return time base in tbn */ - (NSString *)getTimeBase; /** * Returns codec time base. * * @return codec time base in tbc */ - (NSString *)getCodecTimeBase; /** * Returns all tags. * * @return tags dictionary */ - (NSDictionary *)getTags; /** * Returns the stream property associated with the key. * * @return stream property as string or nil if the key is not found */ - (NSString *)getStringProperty:(NSString *)key; /** * Returns the stream property associated with the key. * * @return stream property as number or nil if the key is not found */ - (NSNumber *)getNumberProperty:(NSString *)key; /** * Returns the stream property associated with the key. * * @return stream property as id or nil if the key is not found */ - (id)getProperty:(NSString *)key; /** * Returns all stream properties defined. * * @return all stream properties in a dictionary or nil if no properties are * defined */ - (NSDictionary *)getAllProperties; @end #endif // FFMPEG_KIT_STREAM_INFORMATION_H