Re: [FFmpeg-devel] [PATCH 1/2] examples/avio_dir_cmd: drop support for move/delete operations

2020-01-10 Thread James Almer
On 1/10/2020 2:57 PM, Marton Balint wrote:
> 
> 
> On Fri, 10 Jan 2020, James Almer wrote:
> 
>> On 1/10/2020 8:21 AM, Anton Khirnov wrote:
>>> They use non-public functions, which is unacceptable for a public API
>>> example. Rename the example back to avio_list_dir.
>>>
>>> This effectively reverts c84d208c275d6a43b3c3421d38772179abf8acee and
>>> 767d780ec001167b2fd8f6cfe4ef78a3a8b1e34c.
>>
>> LGTM, these should have never been used here to being with.
> 
> The idea was to make the API public, but there was no consensus about
> it, so the avpriv stuff became a compromise.

The functions should have been moved to avio_internal.h until there was
consensus, then. Being private they obviously can't be used here.

> 
> Regards,
> Marton
> 
>>
>>> ---
>>>  configure |  4 +-
>>>  doc/examples/.gitignore   |  2 +-
>>>  doc/examples/Makefile |  2 +-
>>>  doc/examples/Makefile.example |  2 +-
>>>  .../{avio_dir_cmd.c => avio_list_dir.c}   | 56 ++-
>>>  5 files changed, 9 insertions(+), 57 deletions(-)
>>>  rename doc/examples/{avio_dir_cmd.c => avio_list_dir.c} (69%)
>>>
>>> diff --git a/configure b/configure
>>> index 46f2038627..65a5a30f36 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -1664,7 +1664,7 @@ COMPONENT_LIST="
>>>  "
>>>
>>>  EXAMPLE_LIST="
>>> -    avio_dir_cmd_example
>>> +    avio_list_dir_example
>>>  avio_reading_example
>>>  decode_audio_example
>>>  decode_video_example
>>> @@ -3599,7 +3599,7 @@ yadif_cuda_filter_deps="ffnvcodec"
>>>  yadif_cuda_filter_deps_any="cuda_nvcc cuda_llvm"
>>>
>>>  # examples
>>> -avio_dir_cmd_deps="avformat avutil"
>>> +avio_list_dir_deps="avformat avutil"
>>>  avio_reading_deps="avformat avcodec avutil"
>>>  decode_audio_example_deps="avcodec avutil"
>>>  decode_video_example_deps="avcodec avutil"
>>> diff --git a/doc/examples/.gitignore b/doc/examples/.gitignore
>>> index 75152cb50b..44960e1de7 100644
>>> --- a/doc/examples/.gitignore
>>> +++ b/doc/examples/.gitignore
>>> @@ -1,4 +1,4 @@
>>> -/avio_dir_cmd
>>> +/avio_list_dir
>>>  /avio_reading
>>>  /decode_audio
>>>  /decode_video
>>> diff --git a/doc/examples/Makefile b/doc/examples/Makefile
>>> index 2935424e54..81bfd34d5d 100644
>>> --- a/doc/examples/Makefile
>>> +++ b/doc/examples/Makefile
>>> @@ -1,4 +1,4 @@
>>> -EXAMPLES-$(CONFIG_AVIO_DIR_CMD_EXAMPLE)  += avio_dir_cmd
>>> +EXAMPLES-$(CONFIG_AVIO_LIST_DIR_EXAMPLE) += avio_list_dir
>>>  EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE)  += avio_reading
>>>  EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE)  += decode_audio
>>>  EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE)  += decode_video
>>> diff --git a/doc/examples/Makefile.example
>>> b/doc/examples/Makefile.example
>>> index 6428154c51..a232d97f98 100644
>>> --- a/doc/examples/Makefile.example
>>> +++ b/doc/examples/Makefile.example
>>> @@ -11,7 +11,7 @@ CFLAGS += -Wall -g
>>>  CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
>>>  LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
>>>
>>> -EXAMPLES=   avio_dir_cmd   \
>>> +EXAMPLES=   avio_list_dir  \
>>>  avio_reading   \
>>>  decode_audio   \
>>>  decode_video   \
>>> diff --git a/doc/examples/avio_dir_cmd.c b/doc/examples/avio_list_dir.c
>>> similarity index 69%
>>> rename from doc/examples/avio_dir_cmd.c
>>> rename to doc/examples/avio_list_dir.c
>>> index 0722bd9ab1..3073baaefa 100644
>>> --- a/doc/examples/avio_dir_cmd.c
>>> +++ b/doc/examples/avio_list_dir.c
>>> @@ -102,38 +102,15 @@ static int list_op(const char *input_dir)
>>>  return ret;
>>>  }
>>>
>>> -static int del_op(const char *url)
>>> -{
>>> -    int ret = avpriv_io_delete(url);
>>> -    if (ret < 0)
>>> -    av_log(NULL, AV_LOG_ERROR, "Cannot delete '%s': %s.\n", url,
>>> av_err2str(ret));
>>> -    return ret;
>>> -}
>>> -
>>> -static int move_op(const char *src, const char *dst)
>>> -{
>>> -    int ret = avpriv_io_move(src, dst);
>>> -    if (ret < 0)
>>> -    av_log(NULL, AV_LOG_ERROR, "Cannot move '%s' into '%s':
>>> %s.\n", src, dst, av_err2str(ret));
>>> -    return ret;
>>> -}
>>> -
>>> -
>>>  static void usage(const char *program_name)
>>>  {
>>> -    fprintf(stderr, "usage: %s OPERATION entry1 [entry2]\n"
>>> -    "API example program to show how to manipulate resources "
>>> -    "accessed through AVIOContext.\n"
>>> -    "OPERATIONS:\n"
>>> -    "list  list content of the directory\n"
>>> -    "move  rename content in directory\n"
>>> -    "del   delete content in directory\n",
>>> -    program_name);
>>> +    fprintf(stderr, "usage: %s input_dir\n"
>>> +    "API example program to show how to list files in
>>> directory "
>>> +    "accessed through AVIOContext.\n", 

Re: [FFmpeg-devel] [PATCH 1/2] examples/avio_dir_cmd: drop support for move/delete operations

2020-01-10 Thread Marton Balint



On Fri, 10 Jan 2020, James Almer wrote:


On 1/10/2020 8:21 AM, Anton Khirnov wrote:

They use non-public functions, which is unacceptable for a public API
example. Rename the example back to avio_list_dir.

This effectively reverts c84d208c275d6a43b3c3421d38772179abf8acee and
767d780ec001167b2fd8f6cfe4ef78a3a8b1e34c.


LGTM, these should have never been used here to being with.


The idea was to make the API public, but there was no consensus about it, 
so the avpriv stuff became a compromise.


Regards,
Marton




---
 configure |  4 +-
 doc/examples/.gitignore   |  2 +-
 doc/examples/Makefile |  2 +-
 doc/examples/Makefile.example |  2 +-
 .../{avio_dir_cmd.c => avio_list_dir.c}   | 56 ++-
 5 files changed, 9 insertions(+), 57 deletions(-)
 rename doc/examples/{avio_dir_cmd.c => avio_list_dir.c} (69%)

diff --git a/configure b/configure
index 46f2038627..65a5a30f36 100755
--- a/configure
+++ b/configure
@@ -1664,7 +1664,7 @@ COMPONENT_LIST="
 "

 EXAMPLE_LIST="
-avio_dir_cmd_example
+avio_list_dir_example
 avio_reading_example
 decode_audio_example
 decode_video_example
@@ -3599,7 +3599,7 @@ yadif_cuda_filter_deps="ffnvcodec"
 yadif_cuda_filter_deps_any="cuda_nvcc cuda_llvm"

 # examples
-avio_dir_cmd_deps="avformat avutil"
+avio_list_dir_deps="avformat avutil"
 avio_reading_deps="avformat avcodec avutil"
 decode_audio_example_deps="avcodec avutil"
 decode_video_example_deps="avcodec avutil"
diff --git a/doc/examples/.gitignore b/doc/examples/.gitignore
index 75152cb50b..44960e1de7 100644
--- a/doc/examples/.gitignore
+++ b/doc/examples/.gitignore
@@ -1,4 +1,4 @@
-/avio_dir_cmd
+/avio_list_dir
 /avio_reading
 /decode_audio
 /decode_video
diff --git a/doc/examples/Makefile b/doc/examples/Makefile
index 2935424e54..81bfd34d5d 100644
--- a/doc/examples/Makefile
+++ b/doc/examples/Makefile
@@ -1,4 +1,4 @@
-EXAMPLES-$(CONFIG_AVIO_DIR_CMD_EXAMPLE)  += avio_dir_cmd
+EXAMPLES-$(CONFIG_AVIO_LIST_DIR_EXAMPLE) += avio_list_dir
 EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE)  += avio_reading
 EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE)  += decode_audio
 EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE)  += decode_video
diff --git a/doc/examples/Makefile.example b/doc/examples/Makefile.example
index 6428154c51..a232d97f98 100644
--- a/doc/examples/Makefile.example
+++ b/doc/examples/Makefile.example
@@ -11,7 +11,7 @@ CFLAGS += -Wall -g
 CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
 LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)

-EXAMPLES=   avio_dir_cmd   \
+EXAMPLES=   avio_list_dir  \
 avio_reading   \
 decode_audio   \
 decode_video   \
diff --git a/doc/examples/avio_dir_cmd.c b/doc/examples/avio_list_dir.c
similarity index 69%
rename from doc/examples/avio_dir_cmd.c
rename to doc/examples/avio_list_dir.c
index 0722bd9ab1..3073baaefa 100644
--- a/doc/examples/avio_dir_cmd.c
+++ b/doc/examples/avio_list_dir.c
@@ -102,38 +102,15 @@ static int list_op(const char *input_dir)
 return ret;
 }

-static int del_op(const char *url)
-{
-int ret = avpriv_io_delete(url);
-if (ret < 0)
-av_log(NULL, AV_LOG_ERROR, "Cannot delete '%s': %s.\n", url, 
av_err2str(ret));
-return ret;
-}
-
-static int move_op(const char *src, const char *dst)
-{
-int ret = avpriv_io_move(src, dst);
-if (ret < 0)
-av_log(NULL, AV_LOG_ERROR, "Cannot move '%s' into '%s': %s.\n", src, 
dst, av_err2str(ret));
-return ret;
-}
-
-
 static void usage(const char *program_name)
 {
-fprintf(stderr, "usage: %s OPERATION entry1 [entry2]\n"
-"API example program to show how to manipulate resources "
-"accessed through AVIOContext.\n"
-"OPERATIONS:\n"
-"list  list content of the directory\n"
-"move  rename content in directory\n"
-"del   delete content in directory\n",
-program_name);
+fprintf(stderr, "usage: %s input_dir\n"
+"API example program to show how to list files in directory "
+"accessed through AVIOContext.\n", program_name);
 }

 int main(int argc, char *argv[])
 {
-const char *op = NULL;
 int ret;

 av_log_set_level(AV_LOG_DEBUG);
@@ -145,32 +122,7 @@ int main(int argc, char *argv[])

 avformat_network_init();

-op = argv[1];
-if (strcmp(op, "list") == 0) {
-if (argc < 3) {
-av_log(NULL, AV_LOG_INFO, "Missing argument for list 
operation.\n");
-ret = AVERROR(EINVAL);
-} else {
-ret = list_op(argv[2]);
-}
-} else if (strcmp(op, "del") == 0) {
-if (argc < 3) {
-av_log(NULL, AV_LOG_INFO, "Missing argument for del operation.\n");
-ret = 

Re: [FFmpeg-devel] [PATCH 1/2] examples/avio_dir_cmd: drop support for move/delete operations

2020-01-10 Thread James Almer
On 1/10/2020 8:21 AM, Anton Khirnov wrote:
> They use non-public functions, which is unacceptable for a public API
> example. Rename the example back to avio_list_dir.
> 
> This effectively reverts c84d208c275d6a43b3c3421d38772179abf8acee and
> 767d780ec001167b2fd8f6cfe4ef78a3a8b1e34c.

LGTM, these should have never been used here to being with.

> ---
>  configure |  4 +-
>  doc/examples/.gitignore   |  2 +-
>  doc/examples/Makefile |  2 +-
>  doc/examples/Makefile.example |  2 +-
>  .../{avio_dir_cmd.c => avio_list_dir.c}   | 56 ++-
>  5 files changed, 9 insertions(+), 57 deletions(-)
>  rename doc/examples/{avio_dir_cmd.c => avio_list_dir.c} (69%)
> 
> diff --git a/configure b/configure
> index 46f2038627..65a5a30f36 100755
> --- a/configure
> +++ b/configure
> @@ -1664,7 +1664,7 @@ COMPONENT_LIST="
>  "
>  
>  EXAMPLE_LIST="
> -avio_dir_cmd_example
> +avio_list_dir_example
>  avio_reading_example
>  decode_audio_example
>  decode_video_example
> @@ -3599,7 +3599,7 @@ yadif_cuda_filter_deps="ffnvcodec"
>  yadif_cuda_filter_deps_any="cuda_nvcc cuda_llvm"
>  
>  # examples
> -avio_dir_cmd_deps="avformat avutil"
> +avio_list_dir_deps="avformat avutil"
>  avio_reading_deps="avformat avcodec avutil"
>  decode_audio_example_deps="avcodec avutil"
>  decode_video_example_deps="avcodec avutil"
> diff --git a/doc/examples/.gitignore b/doc/examples/.gitignore
> index 75152cb50b..44960e1de7 100644
> --- a/doc/examples/.gitignore
> +++ b/doc/examples/.gitignore
> @@ -1,4 +1,4 @@
> -/avio_dir_cmd
> +/avio_list_dir
>  /avio_reading
>  /decode_audio
>  /decode_video
> diff --git a/doc/examples/Makefile b/doc/examples/Makefile
> index 2935424e54..81bfd34d5d 100644
> --- a/doc/examples/Makefile
> +++ b/doc/examples/Makefile
> @@ -1,4 +1,4 @@
> -EXAMPLES-$(CONFIG_AVIO_DIR_CMD_EXAMPLE)  += avio_dir_cmd
> +EXAMPLES-$(CONFIG_AVIO_LIST_DIR_EXAMPLE) += avio_list_dir
>  EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE)  += avio_reading
>  EXAMPLES-$(CONFIG_DECODE_AUDIO_EXAMPLE)  += decode_audio
>  EXAMPLES-$(CONFIG_DECODE_VIDEO_EXAMPLE)  += decode_video
> diff --git a/doc/examples/Makefile.example b/doc/examples/Makefile.example
> index 6428154c51..a232d97f98 100644
> --- a/doc/examples/Makefile.example
> +++ b/doc/examples/Makefile.example
> @@ -11,7 +11,7 @@ CFLAGS += -Wall -g
>  CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
>  LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
>  
> -EXAMPLES=   avio_dir_cmd   \
> +EXAMPLES=   avio_list_dir  \
>  avio_reading   \
>  decode_audio   \
>  decode_video   \
> diff --git a/doc/examples/avio_dir_cmd.c b/doc/examples/avio_list_dir.c
> similarity index 69%
> rename from doc/examples/avio_dir_cmd.c
> rename to doc/examples/avio_list_dir.c
> index 0722bd9ab1..3073baaefa 100644
> --- a/doc/examples/avio_dir_cmd.c
> +++ b/doc/examples/avio_list_dir.c
> @@ -102,38 +102,15 @@ static int list_op(const char *input_dir)
>  return ret;
>  }
>  
> -static int del_op(const char *url)
> -{
> -int ret = avpriv_io_delete(url);
> -if (ret < 0)
> -av_log(NULL, AV_LOG_ERROR, "Cannot delete '%s': %s.\n", url, 
> av_err2str(ret));
> -return ret;
> -}
> -
> -static int move_op(const char *src, const char *dst)
> -{
> -int ret = avpriv_io_move(src, dst);
> -if (ret < 0)
> -av_log(NULL, AV_LOG_ERROR, "Cannot move '%s' into '%s': %s.\n", src, 
> dst, av_err2str(ret));
> -return ret;
> -}
> -
> -
>  static void usage(const char *program_name)
>  {
> -fprintf(stderr, "usage: %s OPERATION entry1 [entry2]\n"
> -"API example program to show how to manipulate resources "
> -"accessed through AVIOContext.\n"
> -"OPERATIONS:\n"
> -"list  list content of the directory\n"
> -"move  rename content in directory\n"
> -"del   delete content in directory\n",
> -program_name);
> +fprintf(stderr, "usage: %s input_dir\n"
> +"API example program to show how to list files in directory "
> +"accessed through AVIOContext.\n", program_name);
>  }
>  
>  int main(int argc, char *argv[])
>  {
> -const char *op = NULL;
>  int ret;
>  
>  av_log_set_level(AV_LOG_DEBUG);
> @@ -145,32 +122,7 @@ int main(int argc, char *argv[])
>  
>  avformat_network_init();
>  
> -op = argv[1];
> -if (strcmp(op, "list") == 0) {
> -if (argc < 3) {
> -av_log(NULL, AV_LOG_INFO, "Missing argument for list 
> operation.\n");
> -ret = AVERROR(EINVAL);
> -} else {
> -ret = list_op(argv[2]);
> -}
> -} else if (strcmp(op, "del") == 0) {
> -if (argc < 3) {
> -