mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/hlsenc: Fixed initial setting for end_pts
This patch fixes Bug #6868 Sometimes end_pts is getting initialized to audio stream's first pts, while the duration is calculated based on video stream's pts. In this patch the end_pts is initialized with the correct stream's first pts. Reviewed-by: Steven Liu <lq@onvideo.cn> Tested-by: beloko
This commit is contained in:
parent
143552095d
commit
d5d2632e3a
|
@ -1737,6 +1737,7 @@ static int hls_write_header(AVFormatContext *s)
|
||||||
vs->sequence = hls->start_sequence;
|
vs->sequence = hls->start_sequence;
|
||||||
hls->recording_time = (hls->init_time ? hls->init_time : hls->time) * AV_TIME_BASE;
|
hls->recording_time = (hls->init_time ? hls->init_time : hls->time) * AV_TIME_BASE;
|
||||||
vs->start_pts = AV_NOPTS_VALUE;
|
vs->start_pts = AV_NOPTS_VALUE;
|
||||||
|
vs->end_pts = AV_NOPTS_VALUE;
|
||||||
vs->current_segment_final_filename_fmt[0] = '\0';
|
vs->current_segment_final_filename_fmt[0] = '\0';
|
||||||
|
|
||||||
if (hls->flags & HLS_SPLIT_BY_TIME && hls->flags & HLS_INDEPENDENT_SEGMENTS) {
|
if (hls->flags & HLS_SPLIT_BY_TIME && hls->flags & HLS_INDEPENDENT_SEGMENTS) {
|
||||||
|
@ -2111,7 +2112,6 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
|
|
||||||
if (vs->start_pts == AV_NOPTS_VALUE) {
|
if (vs->start_pts == AV_NOPTS_VALUE) {
|
||||||
vs->start_pts = pkt->pts;
|
vs->start_pts = pkt->pts;
|
||||||
vs->end_pts = pkt->pts;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vs->has_video) {
|
if (vs->has_video) {
|
||||||
|
@ -2123,6 +2123,8 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
is_ref_pkt = can_split = 0;
|
is_ref_pkt = can_split = 0;
|
||||||
|
|
||||||
if (is_ref_pkt) {
|
if (is_ref_pkt) {
|
||||||
|
if (vs->end_pts == AV_NOPTS_VALUE)
|
||||||
|
vs->end_pts = pkt->pts;
|
||||||
if (vs->new_start) {
|
if (vs->new_start) {
|
||||||
vs->new_start = 0;
|
vs->new_start = 0;
|
||||||
vs->duration = (double)(pkt->pts - vs->end_pts)
|
vs->duration = (double)(pkt->pts - vs->end_pts)
|
||||||
|
|
Loading…
Reference in New Issue