Fixes Ticket2143
Unified · Split
| @@ -1098,12 +1098,14 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, · 1097 unmodified lines | ||
| 1098 | 1098 | if (pkt->dts != AV_NOPTS_VALUE) { |
| 1099 | 1099 | // got DTS from the stream, update reference timestamp |
| 1100 | 1100 | st->reference_dts = pkt->dts - pc->dts_ref_dts_delta * num / den; |
| 1101 | − pkt->pts = pkt->dts + pc->pts_dts_delta * num / den; | |
| 1102 | 1101 | } else if (st->reference_dts != AV_NOPTS_VALUE) { |
| 1103 | 1102 | // compute DTS based on reference timestamp |
| 1104 | 1103 | pkt->dts = st->reference_dts + pc->dts_ref_dts_delta * num / den; |
| 1105 | − pkt->pts = pkt->dts + pc->pts_dts_delta * num / den; | |
| 1106 | 1104 | } |
| 1105 | + | |
| 1106 | + if (st->reference_dts != AV_NOPTS_VALUE && pkt->pts == AV_NOPTS_VALUE) | |
| 1107 | + pkt->pts = pkt->dts + pc->pts_dts_delta * num / den; | |
| 1108 | + | |
| 1107 | 1109 | if (pc->dts_sync_point > 0) |
| 1108 | 1110 | st->reference_dts = pkt->dts; // new reference |
| 1109 | 1111 | } |