1 /* 2 * This file is part of FFmpeg. 3 * 4 * FFmpeg is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * FFmpeg is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with FFmpeg; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 */ 18 19 #ifndef AVDEVICE_V4L2_COMMON_H 20 #define AVDEVICE_V4L2_COMMON_H 21 22 #undef __STRICT_ANSI__ //workaround due to broken kernel headers 23 #include "config.h" 24 #include "libavformat/internal.h" 25 #include <unistd.h> 26 #include <fcntl.h> 27 #include <sys/ioctl.h> 28 #include <sys/mman.h> 29 #include <sys/time.h> 30 #if HAVE_SYS_VIDEOIO_H 31 #include <sys/videoio.h> 32 #else 33 #if HAVE_ASM_TYPES_H 34 #include <asm/types.h> 35 #endif 36 #include <linux/videodev2.h> 37 #endif 38 #include "libavutil/avassert.h" 39 #include "libavutil/imgutils.h" 40 #include "libavutil/log.h" 41 #include "libavutil/opt.h" 42 #include "avdevice.h" 43 #include "timefilter.h" 44 #include "libavutil/parseutils.h" 45 #include "libavutil/pixdesc.h" 46 #include "libavutil/time.h" 47 #include "libavutil/avstring.h" 48 49 struct fmt_map { 50 enum AVPixelFormat ff_fmt; 51 enum AVCodecID codec_id; 52 uint32_t v4l2_fmt; 53 }; 54 55 extern const struct fmt_map ff_fmt_conversion_table[]; 56 57 uint32_t ff_fmt_ff2v4l(enum AVPixelFormat pix_fmt, enum AVCodecID codec_id); 58 enum AVPixelFormat ff_fmt_v4l2ff(uint32_t v4l2_fmt, enum AVCodecID codec_id); 59 enum AVCodecID ff_fmt_v4l2codec(uint32_t v4l2_fmt); 60 61 #endif /* AVDEVICE_V4L2_COMMON_H */ 62