History

avformat/utils: do not override pts in h264 when they are provided from the demuxer

Fixes Ticket2143

Michael Niedermayer committed 13 years ago

Commit 1e5271a1 parent f3d06421 file · +4 −2Browse files

Unified · Split

libavformat/utils.c+4−2
@@ -1098,12 +1098,14 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, · 1097 unmodified lines
1098 if (pkt->dts != AV_NOPTS_VALUE) {1098 if (pkt->dts != AV_NOPTS_VALUE) {
1099 // got DTS from the stream, update reference timestamp1099 // got DTS from the stream, update reference timestamp
1100 st->reference_dts = pkt->dts - pc->dts_ref_dts_delta * num / den;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 } else if (st->reference_dts != AV_NOPTS_VALUE) {1101 } else if (st->reference_dts != AV_NOPTS_VALUE) {
1103 // compute DTS based on reference timestamp1102 // compute DTS based on reference timestamp
1104 pkt->dts = st->reference_dts + pc->dts_ref_dts_delta * num / den;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 if (pc->dts_sync_point > 0)1109 if (pc->dts_sync_point > 0)
1108 st->reference_dts = pkt->dts; // new reference1110 st->reference_dts = pkt->dts; // new reference
1109 }1111 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t