22 #include <com/avpkit/ferry/RefCounted.h>
23 #include <com/avpkit/core/AVPKit.h>
24 #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
25 namespace com {
namespace avpkit {
namespace core
358 int64_t wantedTimeStamp, int32_t flags)=0;
384 int64_t wantedTimeStamp, int32_t flags)=0;
A file (or network data source) that contains one or more IStream objects of audio and video data.
An index entry for a IStream.
Represents an encoded piece of data that can be placed in an IContainer for a given IStream of data.
This class wraps represents a Rational number for the AVPKit.
The work horse of the AVPKit: Takes IPacket data from an IContainer (representing an IStream) and an ...
Represents a stream of similar data (eg video) in a IContainer.
virtual IIndexEntry * getIndexEntry(int32_t position)=0
Get the IIndexEntry at the given position in this IStream object's index.
virtual IRational * getFrameRate()=0
Get the (sometimes estimated) frame rate of this container.
Direction
The direction this stream is going (based on the container).
virtual int32_t addIndexEntry(IIndexEntry *entry)=0
Adds an index entry into the stream's sorted index list.
ParseType
What types of parsing can we do on a call to IContainer#readNextPacket(IPacket).
@ PARSE_TIMESTAMPS
full parsing and interpolation of timestamps for frames not starting on a packet boundary
@ PARSE_FULL_ONCE
full parsing and repack of the first frame only, only implemented for H.264 currently
@ PARSE_HEADERS
Only parse headers, do not repack.
@ PARSE_FULL
full parsing and repack
virtual void setId(int32_t id)=0
Set the format-specific stream id.
virtual int64_t getNumFrames()=0
Returns the number of encoded frames if known.
virtual Direction getDirection()=0
Get the Direction this stream is pointing in.
virtual void setParseType(ParseType type)=0
Set the parse type the decoding codec should use.
virtual int32_t setStreamCoder(IStreamCoder *newCoder, bool assumeOnlyStream)=0
Sets the stream coder to use for this stream.
virtual int getIndex()=0
Get the relative position this stream has in the hosting IContainer object.
virtual int setBitstreamFilter(const char *name)=0
Set a bitstream filter on this stream.
virtual const char * getLanguage()=0
Get the 4-character language setting for this stream.
virtual void setMetaData(IMetaData *data)=0
Set the IMetaData on this object, overriding any previous meta data.
virtual IIndexEntry * findTimeStampEntryInIndex(int64_t wantedTimeStamp, int32_t flags)=0
Search for the given time stamp in the key-frame index for this IStream.
virtual int64_t getCurrentDts()=0
The current Decompression Time Stamp that will be used on this stream, in getTimeBase() units.
virtual IMetaData * getMetaData()=0
Get the IMetaData for this object, or null if none.
virtual int getId()=0
Return a container format specific id for this stream.
virtual int32_t stampOutputPacket(IPacket *packet)=0
Takes a packet destined for this stream, and stamps the stream index, and converts the time stamp to ...
virtual IContainer * getContainer()=0
Get the underlying container for this stream, or null if AVPKit doesn't know.
virtual int64_t getStartTime()=0
Return the start time, in getTimeBase() units, when this stream started.
virtual int64_t getDuration()=0
Return the duration, in getTimeBase() units, of this stream, or Global#NO_PTS if unknown.
virtual void setSampleAspectRatio(IRational *newRatio)=0
Sets the sample aspect ratio.
virtual IStreamCoder * getStreamCoder()=0
Get the StreamCoder than can manipulate this stream.
virtual IStream::ParseType getParseType()=0
Get how the decoding codec should parse data from this stream.
virtual int32_t setStreamCoder(IStreamCoder *newCoder)=0
Sets the stream coder to use for this stream.
virtual IRational * getTimeBase()=0
The time base in which all timestamps (e.g.
virtual IRational * getSampleAspectRatio()=0
Added in 1.17.
virtual int getNumIndexEntries()=0
Get the number of index entries in this stream.
virtual void setLanguage(const char *language)=0
Set the 4-character language setting for this stream.
virtual int32_t findTimeStampPositionInIndex(int64_t wantedTimeStamp, int32_t flags)=0
Search for the given time stamp in the key-frame index for this IStream.
Parent of all Ferry objects – it mains reference counts in native code.
WARNING: Do not use logging in this class, and do not set any static file variables to values other t...