mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-05-27 15:09:18 +00:00
lavf: add audio_preload option, this allows interleaving audio earlier
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
54e40b9c14
commit
31f9032b78
4 changed files with 19 additions and 1 deletions
|
@ -3308,6 +3308,16 @@ static int ff_interleave_compare_dts(AVFormatContext *s, AVPacket *next, AVPacke
|
|||
AVStream *st2= s->streams[ next->stream_index];
|
||||
int comp = av_compare_ts(next->dts, st2->time_base, pkt->dts,
|
||||
st->time_base);
|
||||
if(s->audio_preload && ((st->codec->codec_type == AVMEDIA_TYPE_AUDIO) != (st2->codec->codec_type == AVMEDIA_TYPE_AUDIO))){
|
||||
int64_t ts = av_rescale_q(pkt ->dts, st ->time_base, AV_TIME_BASE_Q) - s->audio_preload*(st ->codec->codec_type == AVMEDIA_TYPE_AUDIO);
|
||||
int64_t ts2= av_rescale_q(next->dts, st2->time_base, AV_TIME_BASE_Q) - s->audio_preload*(st2->codec->codec_type == AVMEDIA_TYPE_AUDIO);
|
||||
if(ts == ts2){
|
||||
ts= ( pkt ->dts* st->time_base.num*AV_TIME_BASE - s->audio_preload*(int64_t)(st ->codec->codec_type == AVMEDIA_TYPE_AUDIO)* st->time_base.den)*st2->time_base.den
|
||||
-( next->dts*st2->time_base.num*AV_TIME_BASE - s->audio_preload*(int64_t)(st2->codec->codec_type == AVMEDIA_TYPE_AUDIO)*st2->time_base.den)* st->time_base.den;
|
||||
ts2=0;
|
||||
}
|
||||
comp= (ts>ts2) - (ts<ts2);
|
||||
}
|
||||
|
||||
if (comp == 0)
|
||||
return pkt->stream_index < next->stream_index;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue