|
|
|
@@ -1098,12 +1098,14 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, |
|
|
|
if (pkt->dts != AV_NOPTS_VALUE) { |
|
|
|
// got DTS from the stream, update reference timestamp |
|
|
|
st->reference_dts = pkt->dts - pc->dts_ref_dts_delta * num / den; |
|
|
|
pkt->pts = pkt->dts + pc->pts_dts_delta * num / den; |
|
|
|
} else if (st->reference_dts != AV_NOPTS_VALUE) { |
|
|
|
// compute DTS based on reference timestamp |
|
|
|
pkt->dts = st->reference_dts + pc->dts_ref_dts_delta * num / den; |
|
|
|
pkt->pts = pkt->dts + pc->pts_dts_delta * num / den; |
|
|
|
} |
|
|
|
|
|
|
|
if (st->reference_dts != AV_NOPTS_VALUE && pkt->pts == AV_NOPTS_VALUE) |
|
|
|
pkt->pts = pkt->dts + pc->pts_dts_delta * num / den; |
|
|
|
|
|
|
|
if (pc->dts_sync_point > 0) |
|
|
|
st->reference_dts = pkt->dts; // new reference |
|
|
|
} |
|
|
|
|