Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH v2 1/5] hlsenc: Fix the return value accumulation in append_single_file
@ 2024-06-26 10:57 Martin Storsjö
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 2/5] hlsenc: Fix setting vs->start_pos when not using HLS_SINGLE_FILE or hls_segment_size Martin Storsjö
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Martin Storsjö @ 2024-06-26 10:57 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Steven Liu

Both the read_byte variable (which is accumulated into
append_single_file) and the return value are int64_t;
give the ret variable the right corresponding type too.
---
 libavformat/hlsenc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index f5c0243cf1..3d5eb47e84 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -2380,7 +2380,7 @@ static int hls_init_file_resend(AVFormatContext *s, VariantStream *vs)
 
 static int64_t append_single_file(AVFormatContext *s, VariantStream *vs)
 {
-    int ret = 0;
+    int64_t ret = 0;
     int64_t read_byte = 0;
     int64_t total_size = 0;
     char *filename = NULL;
-- 
2.39.3 (Apple Git-146)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [FFmpeg-devel] [PATCH v2 2/5] hlsenc: Fix setting vs->start_pos when not using HLS_SINGLE_FILE or hls_segment_size
  2024-06-26 10:57 [FFmpeg-devel] [PATCH v2 1/5] hlsenc: Fix the return value accumulation in append_single_file Martin Storsjö
@ 2024-06-26 10:57 ` Martin Storsjö
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 3/5] hlsenc: Remove bogus check for if (vs->start_pos) for appending segments Martin Storsjö
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Martin Storsjö @ 2024-06-26 10:57 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Steven Liu

When not using HLS_SINGLE_FILE or hls_segment_size, we're writing
each segment into a separate file. In that case, the file start pos for
each segment will be zero.

This matches the case in (hls->max_seg_size > 0) above, where we
decide to switch to a new file.

This fixes the calculation of "vs->size = new_start_pos - vs->start_pos"
at the start of hls_write_packet; previously, start_pos would
refer to the byte size of the previous segment file, giving
vs->size entirely bogus values here.
---
 libavformat/hlsenc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 3d5eb47e84..0c72774e29 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -2659,7 +2659,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
                 vs->start_pos = new_start_pos;
             }
         } else {
-            vs->start_pos = new_start_pos;
+            vs->start_pos = 0;
             sls_flag_file_rename(hls, vs, old_filename);
             ret = hls_start(s, vs);
         }
-- 
2.39.3 (Apple Git-146)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [FFmpeg-devel] [PATCH v2 3/5] hlsenc: Remove bogus check for if (vs->start_pos) for appending segments
  2024-06-26 10:57 [FFmpeg-devel] [PATCH v2 1/5] hlsenc: Fix the return value accumulation in append_single_file Martin Storsjö
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 2/5] hlsenc: Fix setting vs->start_pos when not using HLS_SINGLE_FILE or hls_segment_size Martin Storsjö
@ 2024-06-26 10:57 ` Martin Storsjö
  2024-07-02 20:46   ` Martin Storsjö
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 4/5] hlsenc: When not using HLS_SINGLE_FILE, set vs->size to range_length Martin Storsjö
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 5/5] hlsenc: Calculate the average and actual maximum bitrate of segments Martin Storsjö
  3 siblings, 1 reply; 8+ messages in thread
From: Martin Storsjö @ 2024-06-26 10:57 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Steven Liu

Previously, vs->start_pos was never 0 here, unless using the
-hls_segment_size option, which wasn't allowed for SEGMENT_TYPE_FMP4.
Therefore, this if statement was practically always taken anyway.

Remove this bogus if statement, to allow changing vs->start_pos
to reflect the right value when not using the -hls_segment_size
option.
---
 libavformat/hlsenc.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 0c72774e29..e9aff1d0f7 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -2504,6 +2504,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
                                                           end_pts, AV_TIME_BASE_Q) >= 0) {
         int64_t new_start_pos;
         int byterange_mode = (hls->flags & HLS_SINGLE_FILE) || (hls->max_seg_size > 0);
+        double cur_duration;
 
         av_write_frame(oc, NULL); /* Flush any buffered data */
         new_start_pos = avio_tell(oc->pb);
@@ -2609,15 +2610,13 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
             return AVERROR(ENOMEM);
         }
 
-        if (vs->start_pos || hls->segment_type != SEGMENT_TYPE_FMP4) {
-            double cur_duration =  (double)(pkt->pts - vs->end_pts) * st->time_base.num / st->time_base.den;
-            ret = hls_append_segment(s, hls, vs, cur_duration, vs->start_pos, vs->size);
-            vs->end_pts = pkt->pts;
-            vs->duration = 0;
-            if (ret < 0) {
-                av_freep(&old_filename);
-                return ret;
-            }
+        cur_duration = (double)(pkt->pts - vs->end_pts) * st->time_base.num / st->time_base.den;
+        ret = hls_append_segment(s, hls, vs, cur_duration, vs->start_pos, vs->size);
+        vs->end_pts = pkt->pts;
+        vs->duration = 0;
+        if (ret < 0) {
+            av_freep(&old_filename);
+            return ret;
         }
 
         // if we're building a VOD playlist, skip writing the manifest multiple times, and just wait until the end
-- 
2.39.3 (Apple Git-146)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [FFmpeg-devel] [PATCH v2 4/5] hlsenc: When not using HLS_SINGLE_FILE, set vs->size to range_length
  2024-06-26 10:57 [FFmpeg-devel] [PATCH v2 1/5] hlsenc: Fix the return value accumulation in append_single_file Martin Storsjö
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 2/5] hlsenc: Fix setting vs->start_pos when not using HLS_SINGLE_FILE or hls_segment_size Martin Storsjö
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 3/5] hlsenc: Remove bogus check for if (vs->start_pos) for appending segments Martin Storsjö
@ 2024-06-26 10:57 ` Martin Storsjö
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 5/5] hlsenc: Calculate the average and actual maximum bitrate of segments Martin Storsjö
  3 siblings, 0 replies; 8+ messages in thread
From: Martin Storsjö @ 2024-06-26 10:57 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Steven Liu

This matches what is done in the corresponding case for
HLS_SINGLE_FILE.

Normally, vs->size is already initialized correctly - but when
writing the initial segment, with mp4 files, vs->size has been set
to the size of the init segment, while range_length contains the
real size of the first segment.
---
 libavformat/hlsenc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index e9aff1d0f7..7c8c886fc3 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -2587,6 +2587,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
                     av_dict_free(&options);
                     return ret;
                 }
+                vs->size = range_length;
                 ret = hlsenc_io_close(s, &vs->out, filename);
                 if (ret < 0) {
                     av_log(s, AV_LOG_WARNING, "upload segment failed,"
-- 
2.39.3 (Apple Git-146)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [FFmpeg-devel] [PATCH v2 5/5] hlsenc: Calculate the average and actual maximum bitrate of segments
  2024-06-26 10:57 [FFmpeg-devel] [PATCH v2 1/5] hlsenc: Fix the return value accumulation in append_single_file Martin Storsjö
                   ` (2 preceding siblings ...)
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 4/5] hlsenc: When not using HLS_SINGLE_FILE, set vs->size to range_length Martin Storsjö
@ 2024-06-26 10:57 ` Martin Storsjö
  3 siblings, 0 replies; 8+ messages in thread
From: Martin Storsjö @ 2024-06-26 10:57 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Steven Liu

Previously, the bitrate advertised in the master playlist would only
be based on the nominal values in either AVCodecParameters bit_rate,
or via AVCPBProperties max_bitrate. On top of this, a
fudge factor of 10% is added, to account for container overhead.

Neither of these bitrates may be known, and if the encoder is
running in VBR mode, there is no such value to be known. And
the container overhead may be more or less than the given
constant factor of 10%.

Instead, calculate the maximum bitrate per segment based on
what actually gets output from the muxer, and average bitrate
across all segments.

When muxing of the file finishes, update the master playlist
with these values, exposing both the maximum (which previously
was a guesstimate based on the nominal values) via
EXT-X-STREAM-INF BANDWIDTH, and the average via
EXT-X-STREAM-INF AVERAGE-BANDWIDTH.

This makes it possible to use the hlsenc muxer with VBR
encodes, for VOD style muxing.
---
 libavformat/dashenc.c     |  4 ++--
 libavformat/hlsenc.c      | 47 ++++++++++++++++++++++++++++-----------
 libavformat/hlsplaylist.c |  3 +++
 libavformat/hlsplaylist.h |  1 +
 4 files changed, 40 insertions(+), 15 deletions(-)

diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 8c14aa746e..d4a6fe0304 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -1322,7 +1322,7 @@ static int write_manifest(AVFormatContext *s, int final)
                     av_strlcat(codec_str, audio_codec_str, sizeof(codec_str));
                 }
                 get_hls_playlist_name(playlist_file, sizeof(playlist_file), NULL, i);
-                ff_hls_write_stream_info(st, c->m3u8_out, stream_bitrate,
+                ff_hls_write_stream_info(st, c->m3u8_out, stream_bitrate, 0,
                                          playlist_file, agroup,
                                          codec_str, NULL, NULL);
             }
@@ -1348,7 +1348,7 @@ static int write_manifest(AVFormatContext *s, int final)
                     continue;
                 av_strlcpy(codec_str, os->codec_str, sizeof(codec_str));
                 get_hls_playlist_name(playlist_file, sizeof(playlist_file), NULL, i);
-                ff_hls_write_stream_info(st, c->m3u8_out, stream_bitrate,
+                ff_hls_write_stream_info(st, c->m3u8_out, stream_bitrate, 0,
                                          playlist_file, NULL,
                                          codec_str, NULL, NULL);
             }
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 7c8c886fc3..511ae40f8f 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -150,6 +150,11 @@ typedef struct VariantStream {
     int discontinuity;
     int reference_stream_index;
 
+    int64_t total_size;
+    double total_duration;
+    int64_t avg_bitrate;
+    int64_t max_bitrate;
+
     HLSSegment *segments;
     HLSSegment *last_segment;
     HLSSegment *old_segments;
@@ -1108,6 +1113,16 @@ static int hls_append_segment(struct AVFormatContext *s, HLSContext *hls,
     if (!en)
         return AVERROR(ENOMEM);
 
+    vs->total_size += size;
+    vs->total_duration += duration;
+    if (duration > 0) {
+        int cur_bitrate = (int)(8 * size / duration);
+        if (cur_bitrate > vs->max_bitrate)
+            vs->max_bitrate = cur_bitrate;
+    }
+    if (vs->total_duration > 0)
+        vs->avg_bitrate = (int)(8 * vs->total_size / vs->total_duration);
+
     en->var_stream_idx = vs->var_stream_idx;
     ret = sls_flags_filename_process(s, hls, vs, en, duration, pos, size);
     if (ret < 0) {
@@ -1362,14 +1377,15 @@ static int64_t get_stream_bit_rate(AVStream *stream)
 }
 
 static int create_master_playlist(AVFormatContext *s,
-                                  VariantStream * const input_vs)
+                                  VariantStream * const input_vs,
+                                  int final)
 {
     HLSContext *hls = s->priv_data;
     VariantStream *vs, *temp_vs;
     AVStream *vid_st, *aud_st;
     AVDictionary *options = NULL;
     unsigned int i, j;
-    int ret, bandwidth;
+    int ret, bandwidth, avg_bandwidth;
     const char *m3u8_rel_name = NULL;
     const char *vtt_m3u8_rel_name = NULL;
     const char *ccgroup;
@@ -1389,8 +1405,8 @@ static int create_master_playlist(AVFormatContext *s,
                 return 0;
     } else {
          /* Keep publishing the master playlist at the configured rate */
-        if (&hls->var_streams[0] != input_vs || !hls->master_publish_rate ||
-            input_vs->number % hls->master_publish_rate)
+        if ((&hls->var_streams[0] != input_vs || !hls->master_publish_rate ||
+            input_vs->number % hls->master_publish_rate) && !final)
             return 0;
     }
 
@@ -1480,12 +1496,17 @@ static int create_master_playlist(AVFormatContext *s,
             }
         }
 
-        bandwidth = 0;
-        if (vid_st)
-            bandwidth += get_stream_bit_rate(vid_st);
-        if (aud_st)
-            bandwidth += get_stream_bit_rate(aud_st);
-        bandwidth += bandwidth / 10;
+        if (final) {
+            bandwidth = vs->max_bitrate;
+            avg_bandwidth = vs->avg_bitrate;
+        } else {
+            bandwidth = 0;
+            if (vid_st)
+                bandwidth += get_stream_bit_rate(vid_st);
+            if (aud_st)
+                bandwidth += get_stream_bit_rate(aud_st);
+            bandwidth += bandwidth / 10;
+        }
 
         ccgroup = NULL;
         if (vid_st && vs->ccgroup) {
@@ -1514,11 +1535,11 @@ static int create_master_playlist(AVFormatContext *s,
         }
 
         if (!hls->has_default_key || !hls->has_video_m3u8) {
-            ff_hls_write_stream_info(vid_st, hls->m3u8_out, bandwidth, m3u8_rel_name,
+            ff_hls_write_stream_info(vid_st, hls->m3u8_out, bandwidth, avg_bandwidth, m3u8_rel_name,
                     aud_st ? vs->agroup : NULL, vs->codec_attr, ccgroup, sgroup);
         } else {
             if (vid_st) {
-                ff_hls_write_stream_info(vid_st, hls->m3u8_out, bandwidth, m3u8_rel_name,
+                ff_hls_write_stream_info(vid_st, hls->m3u8_out, bandwidth, avg_bandwidth, m3u8_rel_name,
                                          aud_st ? vs->agroup : NULL, vs->codec_attr, ccgroup, sgroup);
             }
         }
@@ -1671,7 +1692,7 @@ fail:
             ff_rename(temp_vtt_filename, vs->vtt_m3u8_name, s);
     }
     if (ret >= 0 && hls->master_pl_name)
-        if (create_master_playlist(s, vs) < 0)
+        if (create_master_playlist(s, vs, last) < 0)
             av_log(s, AV_LOG_WARNING, "Master playlist creation failed\n");
 
     return ret;
diff --git a/libavformat/hlsplaylist.c b/libavformat/hlsplaylist.c
index 4f35d0388f..f8a6977702 100644
--- a/libavformat/hlsplaylist.c
+++ b/libavformat/hlsplaylist.c
@@ -71,6 +71,7 @@ void ff_hls_write_subtitle_rendition(AVIOContext *out, const char *sgroup,
 }
 
 void ff_hls_write_stream_info(AVStream *st, AVIOContext *out, int bandwidth,
+                              int avg_bandwidth,
                               const char *filename, const char *agroup,
                               const char *codecs, const char *ccgroup,
                               const char *sgroup)
@@ -85,6 +86,8 @@ void ff_hls_write_stream_info(AVStream *st, AVIOContext *out, int bandwidth,
     }
 
     avio_printf(out, "#EXT-X-STREAM-INF:BANDWIDTH=%d", bandwidth);
+    if (avg_bandwidth)
+        avio_printf(out, ",AVERAGE-BANDWIDTH=%d", avg_bandwidth);
     if (st && st->codecpar->width > 0 && st->codecpar->height > 0)
         avio_printf(out, ",RESOLUTION=%dx%d", st->codecpar->width,
                 st->codecpar->height);
diff --git a/libavformat/hlsplaylist.h b/libavformat/hlsplaylist.h
index c2744c227c..d7aa44d8dc 100644
--- a/libavformat/hlsplaylist.h
+++ b/libavformat/hlsplaylist.h
@@ -43,6 +43,7 @@ void ff_hls_write_subtitle_rendition(AVIOContext *out, const char *sgroup,
                                      const char *filename, const char *language,
                                      int name_id, int is_default);
 void ff_hls_write_stream_info(AVStream *st, AVIOContext *out, int bandwidth,
+                              int avg_bandwidth,
                               const char *filename, const char *agroup,
                               const char *codecs, const char *ccgroup,
                               const char *sgroup);
-- 
2.39.3 (Apple Git-146)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [FFmpeg-devel] [PATCH v2 3/5] hlsenc: Remove bogus check for if (vs->start_pos) for appending segments
  2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 3/5] hlsenc: Remove bogus check for if (vs->start_pos) for appending segments Martin Storsjö
@ 2024-07-02 20:46   ` Martin Storsjö
  2024-07-03  1:19     ` Steven Liu
  0 siblings, 1 reply; 8+ messages in thread
From: Martin Storsjö @ 2024-07-02 20:46 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Steven Liu

On Wed, 26 Jun 2024, Martin Storsjö wrote:

> Previously, vs->start_pos was never 0 here, unless using the
> -hls_segment_size option, which wasn't allowed for SEGMENT_TYPE_FMP4.
> Therefore, this if statement was practically always taken anyway.
>
> Remove this bogus if statement, to allow changing vs->start_pos
> to reflect the right value when not using the -hls_segment_size
> option.
> ---
> libavformat/hlsenc.c | 17 ++++++++---------
> 1 file changed, 8 insertions(+), 9 deletions(-)

Ping Steven, is the second version of this patchset ok? The main 
difference is this patch, which is new.

// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [FFmpeg-devel] [PATCH v2 3/5] hlsenc: Remove bogus check for if (vs->start_pos) for appending segments
  2024-07-02 20:46   ` Martin Storsjö
@ 2024-07-03  1:19     ` Steven Liu
  2024-07-04 20:36       ` Martin Storsjö
  0 siblings, 1 reply; 8+ messages in thread
From: Steven Liu @ 2024-07-03  1:19 UTC (permalink / raw)
  To: FFmpeg development discussions and patches; +Cc: Steven Liu

Martin Storsjö <martin@martin.st> 于2024年7月3日周三 04:46写道:
>
> On Wed, 26 Jun 2024, Martin Storsjö wrote:
>
> > Previously, vs->start_pos was never 0 here, unless using the
> > -hls_segment_size option, which wasn't allowed for SEGMENT_TYPE_FMP4.
> > Therefore, this if statement was practically always taken anyway.
> >
> > Remove this bogus if statement, to allow changing vs->start_pos
> > to reflect the right value when not using the -hls_segment_size
> > option.
> > ---
> > libavformat/hlsenc.c | 17 ++++++++---------
> > 1 file changed, 8 insertions(+), 9 deletions(-)
>
> Ping Steven, is the second version of this patchset ok? The main
> difference is this patch, which is new.
LGTM


Thanks
Steven
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [FFmpeg-devel] [PATCH v2 3/5] hlsenc: Remove bogus check for if (vs->start_pos) for appending segments
  2024-07-03  1:19     ` Steven Liu
@ 2024-07-04 20:36       ` Martin Storsjö
  0 siblings, 0 replies; 8+ messages in thread
From: Martin Storsjö @ 2024-07-04 20:36 UTC (permalink / raw)
  To: FFmpeg development discussions and patches; +Cc: Steven Liu

On Wed, 3 Jul 2024, Steven Liu wrote:

> Martin Storsjö <martin@martin.st> 于2024年7月3日周三 04:46写道:
>>
>> On Wed, 26 Jun 2024, Martin Storsjö wrote:
>>
>> > Previously, vs->start_pos was never 0 here, unless using the
>> > -hls_segment_size option, which wasn't allowed for SEGMENT_TYPE_FMP4.
>> > Therefore, this if statement was practically always taken anyway.
>> >
>> > Remove this bogus if statement, to allow changing vs->start_pos
>> > to reflect the right value when not using the -hls_segment_size
>> > option.
>> > ---
>> > libavformat/hlsenc.c | 17 ++++++++---------
>> > 1 file changed, 8 insertions(+), 9 deletions(-)
>>
>> Ping Steven, is the second version of this patchset ok? The main
>> difference is this patch, which is new.
> LGTM
>

Thanks, I pushed this patchset now.

// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-07-04 20:36 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-26 10:57 [FFmpeg-devel] [PATCH v2 1/5] hlsenc: Fix the return value accumulation in append_single_file Martin Storsjö
2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 2/5] hlsenc: Fix setting vs->start_pos when not using HLS_SINGLE_FILE or hls_segment_size Martin Storsjö
2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 3/5] hlsenc: Remove bogus check for if (vs->start_pos) for appending segments Martin Storsjö
2024-07-02 20:46   ` Martin Storsjö
2024-07-03  1:19     ` Steven Liu
2024-07-04 20:36       ` Martin Storsjö
2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 4/5] hlsenc: When not using HLS_SINGLE_FILE, set vs->size to range_length Martin Storsjö
2024-06-26 10:57 ` [FFmpeg-devel] [PATCH v2 5/5] hlsenc: Calculate the average and actual maximum bitrate of segments Martin Storsjö

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git