mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-27 05:00:37 +00:00
lavf: add use_wallclock_as_timestamps
This may fix Ticket730 Reviewed-by: Nicolas George <nicolas.george@normalesup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
92b8c9d89e
commit
28ff17fa97
@ -1100,6 +1100,14 @@ typedef struct AVFormatContext {
|
||||
*/
|
||||
int max_chunk_size;
|
||||
|
||||
/**
|
||||
* forces the use of wallclock timestamps as pts/dts of packets
|
||||
* This has undefined results in the presence of B frames.
|
||||
* - encoding: unused
|
||||
* - decoding: Set by user via AVOptions (NO direct access)
|
||||
*/
|
||||
int use_wallclock_as_timestamps;
|
||||
|
||||
/*****************************************************************
|
||||
* All fields below this line are not part of the public API. They
|
||||
* may not be used outside of libavformat and can be changed and
|
||||
|
@ -70,6 +70,7 @@ static const AVOption options[]={
|
||||
{"careful", "consider things that violate the spec and have not been seen in the wild as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_CAREFUL }, INT_MIN, INT_MAX, D, "err_detect"},
|
||||
{"compliant", "consider all spec non compliancies as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_COMPLIANT }, INT_MIN, INT_MAX, D, "err_detect"},
|
||||
{"aggressive", "consider things that a sane encoder shouldnt do as an error", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_AGGRESSIVE }, INT_MIN, INT_MAX, D, "err_detect"},
|
||||
{"use_wallclock_as_timestamps", "use wallclock as timestamps", OFFSET(use_wallclock_as_timestamps), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX-1, D},
|
||||
{NULL},
|
||||
};
|
||||
|
||||
|
@ -776,6 +776,9 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
if(s->subtitle_codec_id)st->codec->codec_id= s->subtitle_codec_id;
|
||||
break;
|
||||
}
|
||||
/* TODO: audio: time filter; video: frame reordering (pts != dts) */
|
||||
if (s->use_wallclock_as_timestamps)
|
||||
pkt->dts = pkt->pts = av_rescale_q(av_gettime(), AV_TIME_BASE_Q, st->time_base);
|
||||
|
||||
if(!pktl && st->request_probe <= 0)
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user