23 #include <com/avpkit/ferry/RefPointer.h>
24 #include <com/avpkit/core/IStream.h>
25 #include <com/avpkit/core/FfmpegIncludes.h>
26 #include <com/avpkit/core/IRational.h>
27 #include <com/avpkit/core/IMetaData.h>
29 namespace com {
namespace avpkit {
namespace core
38 VS_JNIUTILS_REFCOUNTED_OBJECT_PRIVATE_MAKE(
Stream)
63 virtual int containerClosed(
Container* container);
81 virtual AVStream* getAVStream() {
return mStream; }
83 virtual AVBSFContext* getAVBsfContext() {
return mBsfContext; }
89 virtual int32_t
setStreamCoder(IStreamCoder *newCoder,
bool assumeOnlyStream);
91 int64_t wantedTimeStamp, int32_t flags);
93 int64_t wantedTimeStamp, int32_t flags);
96 void setId(int32_t
id);
104 AVBSFContext *mBsfContext;
108 Container* mContainer;
A file (or network data source) that contains one or more IStream objects of audio and video 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.
Direction
The direction this stream is going (based on the container).
ParseType
What types of parsing can we do on a call to IContainer#readNextPacket(IPacket).
virtual int32_t acquire()
Internal Only.
virtual IContainer * getContainer()
Get the underlying container for this stream, or null if AVPKit doesn't know.
virtual int64_t getDuration()
Return the duration, in getTimeBase() units, of this stream, or Global#NO_PTS if unknown.
virtual IRational * getTimeBase()
The time base in which all timestamps (e.g.
virtual int getNumIndexEntries()
Get the number of index entries in this stream.
virtual int getId()
Return a container format specific id for this stream.
virtual IRational * getFrameRate()
Get the (sometimes estimated) frame rate of this container.
virtual IMetaData * getMetaData()
Get the IMetaData for this object, or null if none.
virtual IStream::ParseType getParseType()
Get how the decoding codec should parse data from this stream.
virtual int64_t getCurrentDts()
The current Decompression Time Stamp that will be used on this stream, in getTimeBase() units.
virtual IIndexEntry * findTimeStampEntryInIndex(int64_t wantedTimeStamp, int32_t flags)
Search for the given time stamp in the key-frame index for this IStream.
virtual int32_t stampOutputPacket(IPacket *packet)
Takes a packet destined for this stream, and stamps the stream index, and converts the time stamp to ...
virtual void setLanguage(const char *language)
Set the 4-character language setting for this stream.
virtual int getIndex()
Get the relative position this stream has in the hosting IContainer object.
virtual int64_t getStartTime()
Return the start time, in getTimeBase() units, when this stream started.
virtual int setBitstreamFilter(const char *name)
Set a bitstream filter on this stream.
virtual void setMetaData(IMetaData *metaData)
Set the IMetaData on this object, overriding any previous meta data.
virtual Direction getDirection()
Get the Direction this stream is pointing in.
virtual IStreamCoder * getStreamCoder()
Get the StreamCoder than can manipulate this stream.
virtual int32_t setStreamCoder(IStreamCoder *coder)
Sets the stream coder to use for this stream.
virtual const char * getLanguage()
Get the 4-character language setting for this stream.
virtual int32_t findTimeStampPositionInIndex(int64_t wantedTimeStamp, int32_t flags)
Search for the given time stamp in the key-frame index for this IStream.
virtual int32_t addIndexEntry(IIndexEntry *entry)
Adds an index entry into the stream's sorted index list.
void setId(int32_t id)
Set the format-specific stream id.
virtual IRational * getSampleAspectRatio()
Added in 1.17.
virtual int64_t getNumFrames()
Returns the number of encoded frames if known.
virtual void setParseType(ParseType type)
Set the parse type the decoding codec should use.
virtual int32_t release()
Internal Only.
virtual IIndexEntry * getIndexEntry(int32_t position)
Get the IIndexEntry at the given position in this IStream object's index.
virtual void setSampleAspectRatio(IRational *newRatio)
Sets the sample aspect ratio.
This class is only useful from C++.
WARNING: Do not use logging in this class, and do not set any static file variables to values other t...