Re: [FFmpeg-devel] [PATCH v2 1/2] avformat/hlsenc, utils: Moved is_http_proto from hlsenc to utils for re-use
2017-12-27 15:25 GMT+08:00 Steven Liu: > 2017-12-27 6:22 GMT+08:00 Aman Gupta : >> On Sat, Dec 16, 2017 at 11:03 AM Karthick J wrote: >> >>> From: Karthick Jeyapal >>> >>> --- >>> libavformat/hlsenc.c | 12 +++- >>> libavformat/internal.h | 8 >>> libavformat/utils.c| 5 + >>> 3 files changed, 16 insertions(+), 9 deletions(-) >>> >>> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c >>> index e3442c3..03d54c7 100644 >>> --- a/libavformat/hlsenc.c >>> +++ b/libavformat/hlsenc.c >>> @@ -240,15 +240,10 @@ static int mkdir_p(const char *path) { >>> return ret; >>> } >>> >>> -static int is_http_proto(char *filename) { >>> -const char *proto = avio_find_protocol_name(filename); >>> -return proto ? (!av_strcasecmp(proto, "http") || >>> !av_strcasecmp(proto, "https")) : 0; >>> -} >>> - >>> static int hlsenc_io_open(AVFormatContext *s, AVIOContext **pb, char >>> *filename, >>>AVDictionary **options) { >>> HLSContext *hls = s->priv_data; >>> -int http_base_proto = filename ? is_http_proto(filename) : 0; >>> +int http_base_proto = filename ? ff_is_http_proto(filename) : 0; >>> int err = AVERROR_MUXER_NOT_FOUND; >>> if (!*pb || !http_base_proto || !hls->http_persistent) { >>> err = s->io_open(s, pb, filename, AVIO_FLAG_WRITE, options); >>> @@ -264,8 +259,7 @@ static int hlsenc_io_open(AVFormatContext *s, >>> AVIOContext **pb, char *filename, >>> >>> static void hlsenc_io_close(AVFormatContext *s, AVIOContext **pb, char >>> *filename) { >>> HLSContext *hls = s->priv_data; >>> -int http_base_proto = filename ? is_http_proto(filename) : 0; >>> - >>> +int http_base_proto = filename ? ff_is_http_proto(filename) : 0; >>> if (!http_base_proto || !hls->http_persistent || hls->key_info_file >>> || hls->encrypt) { >>> ff_format_io_close(s, pb); >>> } else { >>> @@ -275,7 +269,7 @@ static void hlsenc_io_close(AVFormatContext *s, >>> AVIOContext **pb, char *filename >>> >>> static void set_http_options(AVFormatContext *s, AVDictionary **options, >>> HLSContext *c) >>> { >>> -int http_base_proto = is_http_proto(s->filename); >>> +int http_base_proto = ff_is_http_proto(s->filename); >>> >>> if (c->method) { >>> av_dict_set(options, "method", c->method, 0); >>> diff --git a/libavformat/internal.h b/libavformat/internal.h >>> index 36a5721..8f168c9 100644 >>> --- a/libavformat/internal.h >>> +++ b/libavformat/internal.h >>> @@ -619,6 +619,14 @@ int ff_format_output_open(AVFormatContext *s, const >>> char *url, AVDictionary **op >>> void ff_format_io_close(AVFormatContext *s, AVIOContext **pb); >>> >>> /** >>> + * Utility function to check if the file uses http or https protocol >>> + * >>> + * @param s AVFormatContext >>> + * @param filename URL or file name to open for writing >>> + */ >>> +int ff_is_http_proto(char *filename); >> >> >> >> +1 from me. This would be useful for some of the changes I'm making to the >> hls demuxer as well. >> >> Any objections? >> >> Aman >> >> >>> + >>> +/** >>> * Parse creation_time in AVFormatContext metadata if exists and warn if >>> the >>> * parsing fails. >>> * >>> diff --git a/libavformat/utils.c b/libavformat/utils.c >>> index 84e4920..f18a7c8 100644 >>> --- a/libavformat/utils.c >>> +++ b/libavformat/utils.c >>> @@ -5459,6 +5459,11 @@ void ff_format_io_close(AVFormatContext *s, >>> AVIOContext **pb) >>> *pb = NULL; >>> } >>> >>> +int ff_is_http_proto(char *filename) { >>> +const char *proto = avio_find_protocol_name(filename); >>> +return proto ? (!av_strcasecmp(proto, "http") || >>> !av_strcasecmp(proto, "https")) : 0; >>> +} >>> + >>> int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t >>> *timestamp, int return_seconds) >>> { >>> AVDictionaryEntry *entry; >>> -- >>> 1.9.1 >>> > > LGTM > > Patchset pushed Thanks Steven ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH v2 1/2] avformat/hlsenc, utils: Moved is_http_proto from hlsenc to utils for re-use
2017-12-27 6:22 GMT+08:00 Aman Gupta: > On Sat, Dec 16, 2017 at 11:03 AM Karthick J wrote: > >> From: Karthick Jeyapal >> >> --- >> libavformat/hlsenc.c | 12 +++- >> libavformat/internal.h | 8 >> libavformat/utils.c| 5 + >> 3 files changed, 16 insertions(+), 9 deletions(-) >> >> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c >> index e3442c3..03d54c7 100644 >> --- a/libavformat/hlsenc.c >> +++ b/libavformat/hlsenc.c >> @@ -240,15 +240,10 @@ static int mkdir_p(const char *path) { >> return ret; >> } >> >> -static int is_http_proto(char *filename) { >> -const char *proto = avio_find_protocol_name(filename); >> -return proto ? (!av_strcasecmp(proto, "http") || >> !av_strcasecmp(proto, "https")) : 0; >> -} >> - >> static int hlsenc_io_open(AVFormatContext *s, AVIOContext **pb, char >> *filename, >>AVDictionary **options) { >> HLSContext *hls = s->priv_data; >> -int http_base_proto = filename ? is_http_proto(filename) : 0; >> +int http_base_proto = filename ? ff_is_http_proto(filename) : 0; >> int err = AVERROR_MUXER_NOT_FOUND; >> if (!*pb || !http_base_proto || !hls->http_persistent) { >> err = s->io_open(s, pb, filename, AVIO_FLAG_WRITE, options); >> @@ -264,8 +259,7 @@ static int hlsenc_io_open(AVFormatContext *s, >> AVIOContext **pb, char *filename, >> >> static void hlsenc_io_close(AVFormatContext *s, AVIOContext **pb, char >> *filename) { >> HLSContext *hls = s->priv_data; >> -int http_base_proto = filename ? is_http_proto(filename) : 0; >> - >> +int http_base_proto = filename ? ff_is_http_proto(filename) : 0; >> if (!http_base_proto || !hls->http_persistent || hls->key_info_file >> || hls->encrypt) { >> ff_format_io_close(s, pb); >> } else { >> @@ -275,7 +269,7 @@ static void hlsenc_io_close(AVFormatContext *s, >> AVIOContext **pb, char *filename >> >> static void set_http_options(AVFormatContext *s, AVDictionary **options, >> HLSContext *c) >> { >> -int http_base_proto = is_http_proto(s->filename); >> +int http_base_proto = ff_is_http_proto(s->filename); >> >> if (c->method) { >> av_dict_set(options, "method", c->method, 0); >> diff --git a/libavformat/internal.h b/libavformat/internal.h >> index 36a5721..8f168c9 100644 >> --- a/libavformat/internal.h >> +++ b/libavformat/internal.h >> @@ -619,6 +619,14 @@ int ff_format_output_open(AVFormatContext *s, const >> char *url, AVDictionary **op >> void ff_format_io_close(AVFormatContext *s, AVIOContext **pb); >> >> /** >> + * Utility function to check if the file uses http or https protocol >> + * >> + * @param s AVFormatContext >> + * @param filename URL or file name to open for writing >> + */ >> +int ff_is_http_proto(char *filename); > > > > +1 from me. This would be useful for some of the changes I'm making to the > hls demuxer as well. > > Any objections? > > Aman > > >> + >> +/** >> * Parse creation_time in AVFormatContext metadata if exists and warn if >> the >> * parsing fails. >> * >> diff --git a/libavformat/utils.c b/libavformat/utils.c >> index 84e4920..f18a7c8 100644 >> --- a/libavformat/utils.c >> +++ b/libavformat/utils.c >> @@ -5459,6 +5459,11 @@ void ff_format_io_close(AVFormatContext *s, >> AVIOContext **pb) >> *pb = NULL; >> } >> >> +int ff_is_http_proto(char *filename) { >> +const char *proto = avio_find_protocol_name(filename); >> +return proto ? (!av_strcasecmp(proto, "http") || >> !av_strcasecmp(proto, "https")) : 0; >> +} >> + >> int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t >> *timestamp, int return_seconds) >> { >> AVDictionaryEntry *entry; >> -- >> 1.9.1 >> LGTM Thanks Steven ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH v2 1/2] avformat/hlsenc, utils: Moved is_http_proto from hlsenc to utils for re-use
On Sat, Dec 16, 2017 at 11:03 AM Karthick Jwrote: > From: Karthick Jeyapal > > --- > libavformat/hlsenc.c | 12 +++- > libavformat/internal.h | 8 > libavformat/utils.c| 5 + > 3 files changed, 16 insertions(+), 9 deletions(-) > > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c > index e3442c3..03d54c7 100644 > --- a/libavformat/hlsenc.c > +++ b/libavformat/hlsenc.c > @@ -240,15 +240,10 @@ static int mkdir_p(const char *path) { > return ret; > } > > -static int is_http_proto(char *filename) { > -const char *proto = avio_find_protocol_name(filename); > -return proto ? (!av_strcasecmp(proto, "http") || > !av_strcasecmp(proto, "https")) : 0; > -} > - > static int hlsenc_io_open(AVFormatContext *s, AVIOContext **pb, char > *filename, >AVDictionary **options) { > HLSContext *hls = s->priv_data; > -int http_base_proto = filename ? is_http_proto(filename) : 0; > +int http_base_proto = filename ? ff_is_http_proto(filename) : 0; > int err = AVERROR_MUXER_NOT_FOUND; > if (!*pb || !http_base_proto || !hls->http_persistent) { > err = s->io_open(s, pb, filename, AVIO_FLAG_WRITE, options); > @@ -264,8 +259,7 @@ static int hlsenc_io_open(AVFormatContext *s, > AVIOContext **pb, char *filename, > > static void hlsenc_io_close(AVFormatContext *s, AVIOContext **pb, char > *filename) { > HLSContext *hls = s->priv_data; > -int http_base_proto = filename ? is_http_proto(filename) : 0; > - > +int http_base_proto = filename ? ff_is_http_proto(filename) : 0; > if (!http_base_proto || !hls->http_persistent || hls->key_info_file > || hls->encrypt) { > ff_format_io_close(s, pb); > } else { > @@ -275,7 +269,7 @@ static void hlsenc_io_close(AVFormatContext *s, > AVIOContext **pb, char *filename > > static void set_http_options(AVFormatContext *s, AVDictionary **options, > HLSContext *c) > { > -int http_base_proto = is_http_proto(s->filename); > +int http_base_proto = ff_is_http_proto(s->filename); > > if (c->method) { > av_dict_set(options, "method", c->method, 0); > diff --git a/libavformat/internal.h b/libavformat/internal.h > index 36a5721..8f168c9 100644 > --- a/libavformat/internal.h > +++ b/libavformat/internal.h > @@ -619,6 +619,14 @@ int ff_format_output_open(AVFormatContext *s, const > char *url, AVDictionary **op > void ff_format_io_close(AVFormatContext *s, AVIOContext **pb); > > /** > + * Utility function to check if the file uses http or https protocol > + * > + * @param s AVFormatContext > + * @param filename URL or file name to open for writing > + */ > +int ff_is_http_proto(char *filename); +1 from me. This would be useful for some of the changes I'm making to the hls demuxer as well. Any objections? Aman > + > +/** > * Parse creation_time in AVFormatContext metadata if exists and warn if > the > * parsing fails. > * > diff --git a/libavformat/utils.c b/libavformat/utils.c > index 84e4920..f18a7c8 100644 > --- a/libavformat/utils.c > +++ b/libavformat/utils.c > @@ -5459,6 +5459,11 @@ void ff_format_io_close(AVFormatContext *s, > AVIOContext **pb) > *pb = NULL; > } > > +int ff_is_http_proto(char *filename) { > +const char *proto = avio_find_protocol_name(filename); > +return proto ? (!av_strcasecmp(proto, "http") || > !av_strcasecmp(proto, "https")) : 0; > +} > + > int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t > *timestamp, int return_seconds) > { > AVDictionaryEntry *entry; > -- > 1.9.1 > > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel