mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
lavf: Set pos for all packets of AVSTREAM_PARSE_FULL_RAW files.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
72743aef03
commit
1c2beff04a
@ -578,7 +578,9 @@ enum AVStreamParseType {
|
||||
AVSTREAM_PARSE_HEADERS, /**< Only parse headers, do not repack. */
|
||||
AVSTREAM_PARSE_TIMESTAMPS, /**< full parsing and interpolation of timestamps for frames not starting on a packet boundary */
|
||||
AVSTREAM_PARSE_FULL_ONCE, /**< full parsing and repack of the first frame only, only implemented for H.264 currently */
|
||||
AVSTREAM_PARSE_FULL_RAW=MKTAG(0,'R','A','W'), /**< full parsing and repack with timestamp generation for raw */
|
||||
AVSTREAM_PARSE_FULL_RAW=MKTAG(0,'R','A','W'), /**< full parsing and repack with timestamp and position generation by parser for raw
|
||||
this assumes that each packet in the file contains no demuxer level headers and
|
||||
just codec level data, otherwise position generaion would fail */
|
||||
};
|
||||
|
||||
typedef struct AVIndexEntry {
|
||||
|
@ -1216,6 +1216,9 @@ static int parse_packet(AVFormatContext *s, AVPacket *pkt, int stream_index)
|
||||
out_pkt.dts = st->parser->dts;
|
||||
out_pkt.pos = st->parser->pos;
|
||||
|
||||
if(st->need_parsing == AVSTREAM_PARSE_FULL_RAW)
|
||||
out_pkt.pos = st->parser->frame_offset;
|
||||
|
||||
if (st->parser->key_frame == 1 ||
|
||||
(st->parser->key_frame == -1 &&
|
||||
st->parser->pict_type == AV_PICTURE_TYPE_I))
|
||||
|
Loading…
x
Reference in New Issue
Block a user