ffmpeg 数据结构-AVPacket

来源:互联网 发布:js模块化编程实例 编辑:程序博客网 时间:2024/05/17 03:21
//结构体有点多,所以就单个拿出来看//数据包结构体typedef struct AVPacket {    /**     * A reference to the reference-counted buffer where the packet data is stored.     * <span>一个</span><span>参考</span><span>计数</span><span>的缓冲区,</span><span>数据</span><span>存储</span>     * May be NULL, then the packet data is not reference-counted.     */    AVBufferRef *buf;    /**     * Presentation timestamp in AVStream->time_base units; the time at which     * the decompressed packet will be presented to the user.     * Can be AV_NOPTS_VALUE if it is not stored in the file.     * pts MUST be larger or equal to dts as presentation cannot happen before     * decompression, unless one wants to view hex dumps. Some formats misuse     * the terms dts and pts/cts to mean something different. Such timestamps     * must be converted to true pts/dts before they are stored in AVPacket.     * 显示时间戳在 AVStream-> time_base 单位 ;时间在其中解压缩的数据包将呈现给用户。     * 如果它不存储在文件中,可以是 AV_NOPTS_VALUE。pts 必须大于或等于 dts 作为显示不能发生前减压,     * 除非你想要查看十六进制转储。某些格式滥用条款 dts 和 pts/cts 意味着不同的东西。     * 在他们存储在 AVPacket 中之前,这种时间戳必须转换为真正的 pts/dts 。     */    int64_t pts;    /**     * 编码时间戳     * Decompression timestamp in AVStream->time_base units; the time at which     * the packet is decompressed.     * Can be AV_NOPTS_VALUE if it is not stored in the file.     */    int64_t dts;    uint8_t *data;    int   size;    int   stream_index;    /**     * A combination of AV_PKT_FLAG values     */    int   flags;    /**     * Additional packet data that can be provided by the container.     * Packet can contain several types of side information.     */    struct {        uint8_t *data;        int      size;        enum AVPacketSideDataType type;    } *side_data;    int side_data_elems;    /**     * Duration of this packet in AVStream->time_base units, 0 if unknown.     * Equals next_pts - this_pts in presentation order.     */    int   duration;#if FF_API_DESTRUCT_PACKET    attribute_deprecated    void  (*destruct)(struct AVPacket *);    attribute_deprecated    void  *priv;#endif    int64_t pos;                            ///< byte position in stream, -1 if unknown    /**     * Time difference in AVStream->time_base units from the pts of this     * packet to the point at which the output from the decoder has converged     * independent from the availability of previous frames. That is, the     * frames are virtually identical no matter if decoding started from     * the very first frame or from this keyframe.     * Is AV_NOPTS_VALUE if unknown.     * This field is not the display duration of the current packet.     * This field has no meaning if the packet does not have AV_PKT_FLAG_KEY     * set.     *     * The purpose of this field is to allow seeking in streams that have no     * keyframes in the conventional sense. It corresponds to the     * recovery point SEI in H.264 and match_time_delta in NUT. It is also     * essential for some types of subtitle streams to ensure that all     * subtitles are correctly displayed after seeking.     */    int64_t convergence_duration;} AVPacket;

0 0
原创粉丝点击