MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / AVCodecParserContext

Class AVCodecParserContext

libavcodec/avcodec.h:3610–3731  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3608
3609/* frame parsing */
3610typedef struct AVCodecParserContext {
3611 void *priv_data;
3612 struct AVCodecParser *parser;
3613 int64_t frame_offset; /* offset of the current frame */
3614 int64_t cur_offset; /* current offset
3615 (incremented by each av_parser_parse()) */
3616 int64_t next_frame_offset; /* offset of the next frame */
3617 /* video info */
3618 int pict_type; /* XXX: Put it back in AVCodecContext. */
3619 /**
3620 * This field is used for proper frame duration computation in lavf.
3621 * It signals, how much longer the frame duration of the current frame
3622 * is compared to normal frame duration.
3623 *
3624 * frame_duration = (1 + repeat_pict) * time_base
3625 *
3626 * It is used by codecs like H.264 to display telecined material.
3627 */
3628 int repeat_pict; /* XXX: Put it back in AVCodecContext. */
3629 int64_t pts; /* pts of the current frame */
3630 int64_t dts; /* dts of the current frame */
3631
3632 /* private data */
3633 int64_t last_pts;
3634 int64_t last_dts;
3635 int fetch_timestamp;
3636
3637#define AV_PARSER_PTS_NB 4
3638 int cur_frame_start_index;
3639 int64_t cur_frame_offset[AV_PARSER_PTS_NB];
3640 int64_t cur_frame_pts[AV_PARSER_PTS_NB];
3641 int64_t cur_frame_dts[AV_PARSER_PTS_NB];
3642
3643 int flags;
3644#define PARSER_FLAG_COMPLETE_FRAMES 0x0001
3645
3646 int64_t offset; ///< byte offset from starting packet start
3647 int64_t cur_frame_end[AV_PARSER_PTS_NB];
3648
3649 /*!
3650 * Set by parser to 1 for key frames and 0 for non-key frames.
3651 * It is initialized to -1, so if the parser doesn't set this flag,
3652 * old-style fallback using FF_I_TYPE picture type as key frames
3653 * will be used.
3654 */
3655 int key_frame;
3656
3657 /**
3658 * Time difference in stream time base units from the pts of this
3659 * packet to the point at which the output from the decoder has converged
3660 * independent from the availability of previous frames. That is, the
3661 * frames are virtually identical no matter if decoding started from
3662 * the very first frame or from this keyframe.
3663 * Is AV_NOPTS_VALUE if unknown.
3664 * This field is not the display duration of the current frame.
3665 *
3666 * The purpose of this field is to allow seeking in streams that have no
3667 * keyframes in the conventional sense. It corresponds to the

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected