summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMarton Balint <cus@passwd.hu>2019-08-15 00:51:10 +0200
committerMarton Balint <cus@passwd.hu>2019-08-23 22:49:01 +0200
commit5c119bf189c3a8806991e6909f9dfc2686189e5e (patch)
tree753c12cb8f4d368c927b3b3892f4d34e9738f05c /libavformat
parent8bf732cda69bb93be200f8f7e56ee97dd44ad334 (diff)
avformat/mpegtsenc: move some code around and simplify a bit
PCR does not need to be recalcualted for CBR when inserting a NULL or PCR only packet. Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/mpegtsenc.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index 4ff8725c7c..a72242fae6 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -1221,6 +1221,15 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st,
}
ts->next_pcr = next_pcr;
}
+ if (dts != AV_NOPTS_VALUE && (dts - pcr / 300) > delay) {
+ /* pcr insert gets priority over null packet insert */
+ if (write_pcr)
+ mpegts_insert_pcr_only(s, st);
+ else
+ mpegts_insert_null_packet(s);
+ /* recalculate write_pcr and possibly retransmit si_info */
+ continue;
+ }
} else if (ts_st->pcr_period && dts != AV_NOPTS_VALUE) {
pcr = (dts - delay) * 300;
if (pcr - ts_st->last_pcr >= ts_st->pcr_period && is_start) {
@@ -1229,17 +1238,6 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st,
}
}
- if (ts->mux_rate > 1 && dts != AV_NOPTS_VALUE &&
- (dts - get_pcr(ts, s->pb) / 300) > delay) {
- /* pcr insert gets priority over null packet insert */
- if (write_pcr)
- mpegts_insert_pcr_only(s, st);
- else
- mpegts_insert_null_packet(s);
- /* recalculate write_pcr and possibly retransmit si_info */
- continue;
- }
-
/* prepare packet header */
q = buf;
*q++ = 0x47;