Commit 5c119bf1 authored by Marton Balint's avatar Marton Balint

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: 's avatarMarton Balint <cus@passwd.hu>
parent 8bf732cd
...@@ -1221,16 +1221,7 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st, ...@@ -1221,16 +1221,7 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st,
} }
ts->next_pcr = next_pcr; ts->next_pcr = next_pcr;
} }
} else if (ts_st->pcr_period && dts != AV_NOPTS_VALUE) { if (dts != AV_NOPTS_VALUE && (dts - pcr / 300) > delay) {
pcr = (dts - delay) * 300;
if (pcr - ts_st->last_pcr >= ts_st->pcr_period && is_start) {
ts_st->last_pcr = FFMAX(pcr - ts_st->pcr_period, ts_st->last_pcr + ts_st->pcr_period);
write_pcr = 1;
}
}
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 */ /* pcr insert gets priority over null packet insert */
if (write_pcr) if (write_pcr)
mpegts_insert_pcr_only(s, st); mpegts_insert_pcr_only(s, st);
...@@ -1239,6 +1230,13 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st, ...@@ -1239,6 +1230,13 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st,
/* recalculate write_pcr and possibly retransmit si_info */ /* recalculate write_pcr and possibly retransmit si_info */
continue; 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) {
ts_st->last_pcr = FFMAX(pcr - ts_st->pcr_period, ts_st->last_pcr + ts_st->pcr_period);
write_pcr = 1;
}
}
/* prepare packet header */ /* prepare packet header */
q = buf; q = buf;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment