You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master: lavd/avdevice: add device iterators lavd: add categories to device implementations lavu/log: add device categories Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -15,6 +15,12 @@ libavutil:     2012-10-22 | ||||
|  | ||||
| API changes, most recent first: | ||||
|  | ||||
| 2014-xx-xx - xxxxxx - lavd 55.11.100 - avdevice.h | ||||
|   Add av_input_audio_device_next(). | ||||
|   Add av_input_video_device_next(). | ||||
|   Add av_output_audio_device_next(). | ||||
|   Add av_output_video_device_next(). | ||||
|  | ||||
| 2014-xx-xx - xxxxxxx - lavu 53.05.0 - frame.h | ||||
|   Add av_frame_copy() for copying the frame data. | ||||
|  | ||||
|   | ||||
| @@ -143,6 +143,7 @@ static const AVClass alsa_demuxer_class = { | ||||
|     .item_name      = av_default_item_name, | ||||
|     .option         = options, | ||||
|     .version        = LIBAVUTIL_VERSION_INT, | ||||
|     .category       = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_alsa_demuxer = { | ||||
|   | ||||
| @@ -142,6 +142,13 @@ audio_get_output_timestamp(AVFormatContext *s1, int stream, | ||||
|     *dts = s->timestamp - delay; | ||||
| } | ||||
|  | ||||
| static const AVClass alsa_muxer_class = { | ||||
|     .class_name     = "ALSA muxer", | ||||
|     .item_name      = av_default_item_name, | ||||
|     .version        = LIBAVUTIL_VERSION_INT, | ||||
|     .category       = AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_alsa_muxer = { | ||||
|     .name           = "alsa", | ||||
|     .long_name      = NULL_IF_CONFIG_SMALL("ALSA audio output"), | ||||
| @@ -154,4 +161,5 @@ AVOutputFormat ff_alsa_muxer = { | ||||
|     .write_uncoded_frame = audio_write_frame, | ||||
|     .get_output_timestamp = audio_get_output_timestamp, | ||||
|     .flags          = AVFMT_NOFILE, | ||||
|     .priv_class     = &alsa_muxer_class, | ||||
| }; | ||||
|   | ||||
| @@ -37,6 +37,52 @@ const char * avdevice_license(void) | ||||
|     return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1; | ||||
| } | ||||
|  | ||||
| static void *av_device_next(void *prev, int output, | ||||
|                             AVClassCategory c1, AVClassCategory c2) | ||||
| { | ||||
|     const AVClass *pc; | ||||
|     AVClassCategory category = AV_CLASS_CATEGORY_NA; | ||||
|     do { | ||||
|         if (output) { | ||||
|             if (!(prev = av_oformat_next(prev))) | ||||
|                 break; | ||||
|             pc = ((AVOutputFormat *)prev)->priv_class; | ||||
|         } else { | ||||
|             if (!(prev = av_iformat_next(prev))) | ||||
|                 break; | ||||
|             pc = ((AVInputFormat *)prev)->priv_class; | ||||
|         } | ||||
|         if (!pc) | ||||
|             continue; | ||||
|         category = pc->category; | ||||
|     } while (category != c1 && category != c2); | ||||
|     return prev; | ||||
| } | ||||
|  | ||||
| AVInputFormat *av_input_audio_device_next(AVInputFormat  *d) | ||||
| { | ||||
|     return av_device_next(d, 0, AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, | ||||
|                           AV_CLASS_CATEGORY_DEVICE_INPUT); | ||||
| } | ||||
|  | ||||
| AVInputFormat *av_input_video_device_next(AVInputFormat  *d) | ||||
| { | ||||
|     return av_device_next(d, 0, AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
|                           AV_CLASS_CATEGORY_DEVICE_INPUT); | ||||
| } | ||||
|  | ||||
| AVOutputFormat *av_output_audio_device_next(AVOutputFormat *d) | ||||
| { | ||||
|     return av_device_next(d, 1, AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, | ||||
|                           AV_CLASS_CATEGORY_DEVICE_OUTPUT); | ||||
| } | ||||
|  | ||||
| AVOutputFormat *av_output_video_device_next(AVOutputFormat *d) | ||||
| { | ||||
|     return av_device_next(d, 1, AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT, | ||||
|                           AV_CLASS_CATEGORY_DEVICE_OUTPUT); | ||||
| } | ||||
|  | ||||
| int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum AVAppToDevMessageType type, | ||||
|                                         void *data, size_t data_size) | ||||
| { | ||||
|   | ||||
| @@ -66,6 +66,42 @@ const char *avdevice_license(void); | ||||
|  */ | ||||
| void avdevice_register_all(void); | ||||
|  | ||||
| /** | ||||
|  * Audio input devices iterator. | ||||
|  * | ||||
|  * If d is NULL, returns the first registered input audio/video device, | ||||
|  * if d is non-NULL, returns the next registered input audio/video device after d | ||||
|  * or NULL if d is the last one. | ||||
|  */ | ||||
| AVInputFormat *av_input_audio_device_next(AVInputFormat  *d); | ||||
|  | ||||
| /** | ||||
|  * Video input devices iterator. | ||||
|  * | ||||
|  * If d is NULL, returns the first registered input audio/video device, | ||||
|  * if d is non-NULL, returns the next registered input audio/video device after d | ||||
|  * or NULL if d is the last one. | ||||
|  */ | ||||
| AVInputFormat *av_input_video_device_next(AVInputFormat  *d); | ||||
|  | ||||
| /** | ||||
|  * Audio output devices iterator. | ||||
|  * | ||||
|  * If d is NULL, returns the first registered output audio/video device, | ||||
|  * if d is non-NULL, returns the next registered output audio/video device after d | ||||
|  * or NULL if d is the last one. | ||||
|  */ | ||||
| AVOutputFormat *av_output_audio_device_next(AVOutputFormat *d); | ||||
|  | ||||
| /** | ||||
|  * Video output devices iterator. | ||||
|  * | ||||
|  * If d is NULL, returns the first registered output audio/video device, | ||||
|  * if d is non-NULL, returns the next registered output audio/video device after d | ||||
|  * or NULL if d is the last one. | ||||
|  */ | ||||
| AVOutputFormat *av_output_video_device_next(AVOutputFormat *d); | ||||
|  | ||||
| typedef struct AVDeviceRect { | ||||
|     int x;      /**< x coordinate of top left corner */ | ||||
|     int y;      /**< y coordinate of top left corner */ | ||||
|   | ||||
| @@ -334,6 +334,7 @@ static const AVClass bktr_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_bktr_demuxer = { | ||||
|   | ||||
| @@ -224,6 +224,7 @@ static const AVClass caca_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_caca_muxer = { | ||||
|   | ||||
| @@ -38,6 +38,7 @@ static const AVClass decklink_muxer_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_decklink_muxer = { | ||||
|   | ||||
| @@ -1081,6 +1081,7 @@ static const AVClass dshow_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_dshow_demuxer = { | ||||
|   | ||||
| @@ -224,6 +224,7 @@ static const AVClass dv1394_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_dv1394_demuxer = { | ||||
|   | ||||
| @@ -217,6 +217,7 @@ static const AVClass fbdev_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_fbdev_demuxer = { | ||||
|   | ||||
| @@ -196,6 +196,7 @@ static const AVClass fbdev_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_fbdev_muxer = { | ||||
|   | ||||
| @@ -483,6 +483,7 @@ static const AVClass iec61883_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_iec61883_demuxer = { | ||||
|   | ||||
| @@ -333,6 +333,7 @@ static const AVClass jack_indev_class = { | ||||
|     .item_name      = av_default_item_name, | ||||
|     .option         = options, | ||||
|     .version        = LIBAVUTIL_VERSION_INT, | ||||
|     .category       = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_jack_demuxer = { | ||||
|   | ||||
| @@ -425,6 +425,7 @@ static const AVClass lavfi_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_lavfi_demuxer = { | ||||
|   | ||||
| @@ -177,6 +177,7 @@ static const AVClass libcdio_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_libcdio_demuxer = { | ||||
|   | ||||
| @@ -112,6 +112,7 @@ static const AVClass libdc1394_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
| }; | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -236,7 +236,8 @@ static const AVClass class = { | ||||
|     .class_name = "openal", | ||||
|     .item_name = av_default_item_name, | ||||
|     .option = options, | ||||
|     .version = LIBAVUTIL_VERSION_INT | ||||
|     .version = LIBAVUTIL_VERSION_INT, | ||||
|     .category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_openal_demuxer = { | ||||
|   | ||||
| @@ -1272,6 +1272,7 @@ static const AVClass opengl_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_opengl_muxer = { | ||||
|   | ||||
| @@ -296,6 +296,7 @@ static const AVClass oss_demuxer_class = { | ||||
|     .item_name      = av_default_item_name, | ||||
|     .option         = options, | ||||
|     .version        = LIBAVUTIL_VERSION_INT, | ||||
|     .category       = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_oss_demuxer = { | ||||
| @@ -311,6 +312,13 @@ AVInputFormat ff_oss_demuxer = { | ||||
| #endif | ||||
|  | ||||
| #if CONFIG_OSS_OUTDEV | ||||
| static const AVClass oss_muxer_class = { | ||||
|     .class_name     = "OSS muxer", | ||||
|     .item_name      = av_default_item_name, | ||||
|     .version        = LIBAVUTIL_VERSION_INT, | ||||
|     .category       = AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_oss_muxer = { | ||||
|     .name           = "oss", | ||||
|     .long_name      = NULL_IF_CONFIG_SMALL("OSS (Open Sound System) playback"), | ||||
| @@ -324,5 +332,6 @@ AVOutputFormat ff_oss_muxer = { | ||||
|     .write_packet   = audio_write_packet, | ||||
|     .write_trailer  = audio_write_trailer, | ||||
|     .flags          = AVFMT_NOFILE, | ||||
|     .priv_class     = &oss_muxer_class, | ||||
| }; | ||||
| #endif | ||||
|   | ||||
| @@ -166,6 +166,7 @@ static const AVClass pulse_demuxer_class = { | ||||
|     .item_name      = av_default_item_name, | ||||
|     .option         = options, | ||||
|     .version        = LIBAVUTIL_VERSION_INT, | ||||
|     .category       = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_pulse_demuxer = { | ||||
|   | ||||
| @@ -167,6 +167,7 @@ static const AVClass pulse_muxer_class = { | ||||
|     .item_name      = av_default_item_name, | ||||
|     .option         = options, | ||||
|     .version        = LIBAVUTIL_VERSION_INT, | ||||
|     .category       = AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_pulse_muxer = { | ||||
|   | ||||
| @@ -358,6 +358,7 @@ static const AVClass sdl_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_sdl_muxer = { | ||||
|   | ||||
| @@ -104,6 +104,7 @@ static const AVClass sndio_demuxer_class = { | ||||
|     .item_name      = av_default_item_name, | ||||
|     .option         = options, | ||||
|     .version        = LIBAVUTIL_VERSION_INT, | ||||
|     .category       = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_sndio_demuxer = { | ||||
|   | ||||
| @@ -76,6 +76,13 @@ static int audio_write_trailer(AVFormatContext *s1) | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static const AVClass sndio_muxer_class = { | ||||
|     .class_name     = "sndio outdev", | ||||
|     .item_name      = av_default_item_name, | ||||
|     .version        = LIBAVUTIL_VERSION_INT, | ||||
|     .category       = AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_sndio_muxer = { | ||||
|     .name           = "sndio", | ||||
|     .long_name      = NULL_IF_CONFIG_SMALL("sndio audio playback"), | ||||
| @@ -89,4 +96,5 @@ AVOutputFormat ff_sndio_muxer = { | ||||
|     .write_packet   = audio_write_packet, | ||||
|     .write_trailer  = audio_write_trailer, | ||||
|     .flags          = AVFMT_NOFILE, | ||||
|     .priv_class     = &sndio_muxer_class, | ||||
| }; | ||||
|   | ||||
| @@ -348,6 +348,7 @@ static const AVClass v4l_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_v4l_demuxer = { | ||||
|   | ||||
| @@ -1023,6 +1023,7 @@ static const AVClass v4l2_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_v4l2_demuxer = { | ||||
|   | ||||
| @@ -97,6 +97,13 @@ static int write_trailer(AVFormatContext *s1) | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static const AVClass v4l2_class = { | ||||
|     .class_name = "V4L2 outdev", | ||||
|     .item_name  = av_default_item_name, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_v4l2_muxer = { | ||||
|     .name           = "v4l2", | ||||
|     .long_name      = NULL_IF_CONFIG_SMALL("Video4Linux2 output device"), | ||||
| @@ -107,4 +114,5 @@ AVOutputFormat ff_v4l2_muxer = { | ||||
|     .write_packet   = write_packet, | ||||
|     .write_trailer  = write_trailer, | ||||
|     .flags          = AVFMT_NOFILE, | ||||
|     .priv_class     = &v4l2_class, | ||||
| }; | ||||
|   | ||||
| @@ -28,7 +28,7 @@ | ||||
| #include "libavutil/version.h" | ||||
|  | ||||
| #define LIBAVDEVICE_VERSION_MAJOR  55 | ||||
| #define LIBAVDEVICE_VERSION_MINOR  10 | ||||
| #define LIBAVDEVICE_VERSION_MINOR  11 | ||||
| #define LIBAVDEVICE_VERSION_MICRO 100 | ||||
|  | ||||
| #define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \ | ||||
|   | ||||
| @@ -469,6 +469,7 @@ static const AVClass vfw_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT | ||||
| }; | ||||
|  | ||||
| AVInputFormat ff_vfwcap_demuxer = { | ||||
|   | ||||
| @@ -633,6 +633,7 @@ static const AVClass x11_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
| }; | ||||
|  | ||||
| /** x11 grabber device demuxer declaration */ | ||||
|   | ||||
| @@ -255,6 +255,7 @@ static const AVClass xv_class = { | ||||
|     .item_name  = av_default_item_name, | ||||
|     .option     = options, | ||||
|     .version    = LIBAVUTIL_VERSION_INT, | ||||
|     .category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT, | ||||
| }; | ||||
|  | ||||
| AVOutputFormat ff_xv_muxer = { | ||||
|   | ||||
| @@ -71,6 +71,12 @@ static const uint8_t color[16 + AV_CLASS_CATEGORY_NB] = { | ||||
|     [16+AV_CLASS_CATEGORY_BITSTREAM_FILTER] =  9, | ||||
|     [16+AV_CLASS_CATEGORY_SWSCALER        ] =  7, | ||||
|     [16+AV_CLASS_CATEGORY_SWRESAMPLER     ] =  7, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT ] = 13, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT  ] = 5, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT ] = 13, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT  ] = 5, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_OUTPUT       ] = 13, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_INPUT        ] = 5, | ||||
| }; | ||||
|  | ||||
| static int16_t background, attr_orig; | ||||
| @@ -96,6 +102,12 @@ static const uint32_t color[16 + AV_CLASS_CATEGORY_NB] = { | ||||
|     [16+AV_CLASS_CATEGORY_BITSTREAM_FILTER] = 192 << 8 | 0x14, | ||||
|     [16+AV_CLASS_CATEGORY_SWSCALER        ] = 153 << 8 | 0x14, | ||||
|     [16+AV_CLASS_CATEGORY_SWRESAMPLER     ] = 147 << 8 | 0x14, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT ] = 213 << 8 | 0x15, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT  ] = 207 << 8 | 0x05, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT ] = 213 << 8 | 0x15, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT  ] = 207 << 8 | 0x05, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_OUTPUT       ] = 213 << 8 | 0x15, | ||||
|     [16+AV_CLASS_CATEGORY_DEVICE_INPUT        ] = 207 << 8 | 0x05, | ||||
| }; | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -37,6 +37,12 @@ typedef enum { | ||||
|     AV_CLASS_CATEGORY_BITSTREAM_FILTER, | ||||
|     AV_CLASS_CATEGORY_SWSCALER, | ||||
|     AV_CLASS_CATEGORY_SWRESAMPLER, | ||||
|     AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = 40, | ||||
|     AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, | ||||
|     AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, | ||||
|     AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, | ||||
|     AV_CLASS_CATEGORY_DEVICE_OUTPUT, | ||||
|     AV_CLASS_CATEGORY_DEVICE_INPUT, | ||||
|     AV_CLASS_CATEGORY_NB, ///< not part of ABI/API | ||||
| }AVClassCategory; | ||||
|  | ||||
|   | ||||
| @@ -57,7 +57,7 @@ | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_MAJOR  52 | ||||
| #define LIBAVUTIL_VERSION_MINOR  66 | ||||
| #define LIBAVUTIL_VERSION_MICRO 100 | ||||
| #define LIBAVUTIL_VERSION_MICRO 101 | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||
|                                                LIBAVUTIL_VERSION_MINOR, \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user