diff --git a/libavdevice/alldevices.c b/libavdevice/alldevices.c index 0e2cf6d12e..e7bfb027cd 100644 --- a/libavdevice/alldevices.c +++ b/libavdevice/alldevices.c @@ -47,7 +47,9 @@ void avdevice_register_all(void) REGISTER_INOUTDEV (OSS, oss); REGISTER_INOUTDEV (SNDIO, sndio); REGISTER_INDEV (V4L2, v4l2); +#if FF_API_V4L REGISTER_INDEV (V4L, v4l); +#endif REGISTER_INDEV (VFWCAP, vfwcap); REGISTER_INDEV (X11_GRAB_DEVICE, x11_grab_device); diff --git a/libavdevice/avdevice.h b/libavdevice/avdevice.h index d1e321bf3a..d82b26fda6 100644 --- a/libavdevice/avdevice.h +++ b/libavdevice/avdevice.h @@ -33,6 +33,10 @@ LIBAVDEVICE_VERSION_MICRO) #define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT +#ifndef FF_API_V4L +#define FF_API_V4L (LIBAVDEVICE_VERSION_MAJOR < 54) +#endif + /** * Return the LIBAVDEVICE_VERSION_INT constant. */ diff --git a/libavdevice/v4l.c b/libavdevice/v4l.c index 54d0394ff5..6742667f05 100644 --- a/libavdevice/v4l.c +++ b/libavdevice/v4l.c @@ -19,6 +19,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#if FF_API_V4L + #undef __STRICT_ANSI__ //workaround due to broken kernel headers #include "config.h" #include "libavutil/rational.h" @@ -83,6 +85,8 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap) int j; int vformat_num = FF_ARRAY_ELEMS(video_formats); + av_log(s1, AV_LOG_WARNING, "V4L input device is deprecated and will be removed in the next release."); + if (ap->time_base.den <= 0) { av_log(s1, AV_LOG_ERROR, "Wrong time base (%d)\n", ap->time_base.den); return -1; @@ -368,3 +372,4 @@ AVInputFormat ff_v4l_demuxer = { .flags = AVFMT_NOFILE, .priv_class = &v4l_class, }; +#endif /* FF_API_V4L */