[FFmpeg-devel] [PATCH v2] avformat/hlsenc: improve the code readable of 1000000
Bodecs Bela
bodecsb at vivanet.hu
Mon Jan 23 17:10:12 EET 2017
2017.01.23. 15:55 keltezéssel, James Almer írta:
> On 1/23/2017 11:25 AM, Steven Liu wrote:
>> 2017-01-23 22:14 GMT+08:00 James Almer <jamrial at gmail.com>:
>>
>>> On 1/23/2017 8:01 AM, Steven Liu wrote:
>>>> Reviewed-by: Bodecs Bela <bodecsb at vivanet.hu>
>>>> Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
>>>> ---
>>>> libavformat/hlsenc.c | 3 ++-
>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
>>>> index 85d3955..0170b34 100644
>>>> --- a/libavformat/hlsenc.c
>>>> +++ b/libavformat/hlsenc.c
>>>> @@ -47,6 +47,7 @@ typedef enum {
>>>>
>>>> #define KEYSIZE 16
>>>> #define LINE_BUFFER_SIZE 1024
>>>> +#define HLS_MICROSECOND_UNIT 1000000
>>> You could instead use AV_TIME_BASE. It's more in line with the rest of the
>>> codebase.
>>>
>> No, the 1st version, Bodecs Bela has point the 1000000 is not AV_TIME_BASE
>> mean.
> I'm not sure i understand his reasoning, seeing that AV_TIME_BASE is
> defined as 1000000 in avutil.h and i don't see it changing anytime soon,
> but it's just a nit so not really important. This patch is good as is.
I used 1000000 because the duration is in seconds and the replacement
should be in microseconds.
The filename will contain the duration in microseconds.
So this is a "seconds to microseconds" conversion. It would be a
mistake to use AV_TIME_BASE here, because i think it is a coincindence
that the 2 numbers is the same.
We want ot use microseconds in filenames not AV_TIME_BASE units.
Maybe a comment should be added to the code about it.
The reasoning behind to put duration in microseconds into filename
instead of seconds was to avoid comma in filename.
>
>>>> typedef struct HLSSegment {
>>>> char filename[1024];
>>>> @@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext
>>> *s, HLSContext *hls, double
>>>> return AVERROR(ENOMEM);
>>>> }
>>>> if (replace_int_data_in_filename(hls->avf->filename,
>>> sizeof(hls->avf->filename),
>>>> - filename, 't', (int64_t)round(1000000 * duration)) <
>>> 1) {
>>>> + filename, 't', (int64_t)round(duration *
>>> HLS_MICROSECOND_UNIT)) < 1) {
>>>> av_log(hls, AV_LOG_ERROR,
>>>> "Invalid second level segment filename template
>>> '%s', "
>>>> "you can try to remove
>>> second_level_segment_time flag\n",
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list