/* * 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 . */ #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 full stream codec. * * @return stream codec with additional profile and mode information */ - (NSString*)getFullCodec; /** * 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 properties associated with the key. * * @return stream properties in a dictionary or nil if the key is not found */ - (NSDictionary*)getProperties:(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