mirror of https://git.ffmpeg.org/ffmpeg.git
mpegtsenc: check max_delay in write_packet_internal().
Checking it during PES writing is too late. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
9c409e568f
commit
3700f655c5
|
@ -1070,6 +1070,21 @@ static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pkt->dts != AV_NOPTS_VALUE) {
|
||||||
|
int i;
|
||||||
|
for(i=0; i<s->nb_streams; i++){
|
||||||
|
AVStream *st2 = s->streams[i];
|
||||||
|
MpegTSWriteStream *ts_st2 = st2->priv_data;
|
||||||
|
if( ts_st2->payload_size
|
||||||
|
&& ts_st2->payload_dts == AV_NOPTS_VALUE || dts - ts_st2->payload_dts > delay/2){
|
||||||
|
mpegts_write_pes(s, st, ts_st->payload, ts_st->payload_size,
|
||||||
|
ts_st->payload_pts, ts_st->payload_dts,
|
||||||
|
ts_st->payload_flags & AV_PKT_FLAG_KEY);
|
||||||
|
ts_st->payload_size = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ts_st->payload_size && ts_st->payload_size + size > ts->pes_payload_size) {
|
if (ts_st->payload_size && ts_st->payload_size + size > ts->pes_payload_size) {
|
||||||
mpegts_write_pes(s, st, ts_st->payload, ts_st->payload_size,
|
mpegts_write_pes(s, st, ts_st->payload, ts_st->payload_size,
|
||||||
ts_st->payload_pts, ts_st->payload_dts,
|
ts_st->payload_pts, ts_st->payload_dts,
|
||||||
|
|
Loading…
Reference in New Issue