hlsenc: Only write PAT/PMT once per segment

This saves a lot of muxing overhead, especially on lower bitrate
segments.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
Derek Buitenhuis 2015-04-05 14:28:38 -04:00
parent 430f943e63
commit 9ae73d0644
1 changed files with 9 additions and 1 deletions

View File

@ -560,8 +560,16 @@ static int hls_start(AVFormatContext *s)
} }
av_dict_free(&options); av_dict_free(&options);
if (oc->oformat->priv_class && oc->priv_data) /* We only require one PAT/PMT per segment. */
if (oc->oformat->priv_class && oc->priv_data) {
char period[21];
snprintf(period, sizeof(period), "%d", (INT_MAX / 2) - 1);
av_opt_set(oc->priv_data, "mpegts_flags", "resend_headers", 0); av_opt_set(oc->priv_data, "mpegts_flags", "resend_headers", 0);
av_opt_set(oc->priv_data, "sdt_period", period, 0);
av_opt_set(oc->priv_data, "pat_period", period, 0);
}
if (c->vtt_basename) if (c->vtt_basename)
avformat_write_header(vtt_oc,NULL); avformat_write_header(vtt_oc,NULL);