These functions rely on deprecated libavformat APIs and apparently have
zero users outside of cmdutils. Since the functionality they provide is
apparently not useful to anyone, deprecate them without replacement.
---
 doc/APIchanges         | 4 ++++
 fftools/cmdutils.c     | 2 +-
 fftools/cmdutils.h     | 4 ++--
 libavdevice/avdevice.c | 4 ++++
 libavdevice/avdevice.h | 6 ++++++
 5 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index fb5534b5f5..f5b2a7b964 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,10 @@ libavutil:     2017-10-21
 
 API changes, most recent first:
 
+2020-xx-xx - avdevice.h
+  Deprecate av_input_video_device_next, av_output_video_device_next,
+  av_input_audio_device_next, av_output_audio_device_next
+
 2020-xx-xx - xxxxxxxxxx - lavc 58.88.100 - avcodec.h codec.h
   Move AVCodec-related public API to new header codec.h.
 
diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index dec18850d8..a948d478d5 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -2216,7 +2216,7 @@ double get_rotation(AVStream *st)
     return theta;
 }
 
-#if CONFIG_AVDEVICE
+#if CONFIG_AVDEVICE && FF_API_NEXT
 static int print_device_sources(AVInputFormat *fmt, AVDictionary *opts)
 {
     int ret, i;
diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h
index 1917510589..ae5208f1aa 100644
--- a/fftools/cmdutils.h
+++ b/fftools/cmdutils.h
@@ -201,7 +201,7 @@ typedef struct OptionDef {
 void show_help_options(const OptionDef *options, const char *msg, int 
req_flags,
                        int rej_flags, int alt_flags);
 
-#if CONFIG_AVDEVICE
+#if CONFIG_AVDEVICE && FF_API_NEXT
 #define CMDUTILS_COMMON_OPTIONS_AVDEVICE                                       
                                         \
     { "sources"    , OPT_EXIT | HAS_ARG, { .func_arg = show_sources },         
                                         \
       "list sources of the input device", "device" },                          
                                         \
@@ -498,7 +498,7 @@ int show_demuxers(void *optctx, const char *opt, const char 
*arg);
  */
 int show_devices(void *optctx, const char *opt, const char *arg);
 
-#if CONFIG_AVDEVICE
+#if CONFIG_AVDEVICE && FF_API_NEXT
 /**
  * Print a listing containing autodetected sinks of the output device.
  * Device name with options may be passed as an argument to limit results.
diff --git a/libavdevice/avdevice.c b/libavdevice/avdevice.c
index 3d03d89f04..e45cc06153 100644
--- a/libavdevice/avdevice.c
+++ b/libavdevice/avdevice.c
@@ -78,6 +78,8 @@ const char * avdevice_license(void)
     return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1];
 }
 
+#if FF_API_NEXT
+FF_DISABLE_DEPRECATION_WARNINGS
 static void *device_next(void *prev, int output,
                          AVClassCategory c1, AVClassCategory c2)
 {
@@ -99,6 +101,7 @@ static void *device_next(void *prev, int output,
     } while (category != c1 && category != c2);
     return prev;
 }
+FF_ENABLE_DEPRECATION_WARNINGS
 
 AVInputFormat *av_input_audio_device_next(AVInputFormat  *d)
 {
@@ -123,6 +126,7 @@ AVOutputFormat *av_output_video_device_next(AVOutputFormat 
*d)
     return device_next(d, 1, AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT,
                        AV_CLASS_CATEGORY_DEVICE_OUTPUT);
 }
+#endif
 
 int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum 
AVAppToDevMessageType type,
                                         void *data, size_t data_size)
diff --git a/libavdevice/avdevice.h b/libavdevice/avdevice.h
index ee9462480e..c63f661fc7 100644
--- a/libavdevice/avdevice.h
+++ b/libavdevice/avdevice.h
@@ -70,6 +70,7 @@ const char *avdevice_license(void);
  */
 void avdevice_register_all(void);
 
+#if FF_API_NEXT
 /**
  * Audio input devices iterator.
  *
@@ -77,6 +78,7 @@ void avdevice_register_all(void);
  * if d is non-NULL, returns the next registered input audio/video device 
after d
  * or NULL if d is the last one.
  */
+attribute_deprecated
 AVInputFormat *av_input_audio_device_next(AVInputFormat  *d);
 
 /**
@@ -86,6 +88,7 @@ AVInputFormat *av_input_audio_device_next(AVInputFormat  *d);
  * if d is non-NULL, returns the next registered input audio/video device 
after d
  * or NULL if d is the last one.
  */
+attribute_deprecated
 AVInputFormat *av_input_video_device_next(AVInputFormat  *d);
 
 /**
@@ -95,6 +98,7 @@ AVInputFormat *av_input_video_device_next(AVInputFormat  *d);
  * if d is non-NULL, returns the next registered output audio/video device 
after d
  * or NULL if d is the last one.
  */
+attribute_deprecated
 AVOutputFormat *av_output_audio_device_next(AVOutputFormat *d);
 
 /**
@@ -104,7 +108,9 @@ AVOutputFormat *av_output_audio_device_next(AVOutputFormat 
*d);
  * if d is non-NULL, returns the next registered output audio/video device 
after d
  * or NULL if d is the last one.
  */
+attribute_deprecated
 AVOutputFormat *av_output_video_device_next(AVOutputFormat *d);
+#endif
 
 typedef struct AVDeviceRect {
     int x;      /**< x coordinate of top left corner */
-- 
2.26.2

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

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

Reply via email to