#include "libavutil/parseutils.h"#include "libavutil/pixdesc.h"#include "libavutil/opt.h"#include "libavformat/internal.h"#include "avdevice.h"#include "dshow_capture.h"Go to the source code of this file.
Data Structures | |
| struct | dshow_ctx | 
Defines | |
| #define | OFFSET(x) offsetof(struct dshow_ctx, x) | 
| #define | DEC AV_OPT_FLAG_DECODING_PARAM | 
Functions | |
| static enum PixelFormat | dshow_pixfmt (DWORD biCompression, WORD biBitCount) | 
| static enum AVCodecID | dshow_codecid (DWORD biCompression) | 
| static int | dshow_read_close (AVFormatContext *s) | 
| static char * | dup_wchar_to_utf8 (wchar_t *w) | 
| static int | shall_we_drop (AVFormatContext *s) | 
| static void | callback (void *priv_data, int index, uint8_t *buf, int buf_size, int64_t time) | 
| static int | dshow_cycle_devices (AVFormatContext *avctx, ICreateDevEnum *devenum, enum dshowDeviceType devtype, IBaseFilter **pfilter) | 
| Cycle through available devices using the device enumerator devenum, retrieve the device with type specified by devtype and return the pointer to the object found in *pfilter.   | |
| static void | dshow_cycle_formats (AVFormatContext *avctx, enum dshowDeviceType devtype, IPin *pin, int *pformat_set) | 
| Cycle through available formats using the specified pin, try to set parameters specified through AVOptions and if successful return 1 in *pformat_set.   | |
| static int | dshow_set_audio_buffer_size (AVFormatContext *avctx, IPin *pin) | 
| Set audio device buffer size in milliseconds (which can directly impact latency, depending on the device).   | |
| static int | dshow_cycle_pins (AVFormatContext *avctx, enum dshowDeviceType devtype, IBaseFilter *device_filter, IPin **ppin) | 
| Cycle through available pins using the device_filter device, of type devtype, retrieve the first output pin and return the pointer to the object found in *ppin.   | |
| static int | dshow_list_device_options (AVFormatContext *avctx, ICreateDevEnum *devenum, enum dshowDeviceType devtype) | 
| List options for device with type devtype.   | |
| static int | dshow_open_device (AVFormatContext *avctx, ICreateDevEnum *devenum, enum dshowDeviceType devtype) | 
| static enum AVCodecID | waveform_codec_id (enum AVSampleFormat sample_fmt) | 
| static enum AVSampleFormat | sample_fmt_bits_per_sample (int bits) | 
| static int | dshow_add_device (AVFormatContext *avctx, enum dshowDeviceType devtype) | 
| static int | parse_device_name (AVFormatContext *avctx) | 
| static int | dshow_read_header (AVFormatContext *avctx) | 
| static int | dshow_read_packet (AVFormatContext *s, AVPacket *pkt) | 
Variables | |
| static const AVOption | options [] | 
| static const AVClass | dshow_class | 
| AVInputFormat | ff_dshow_demuxer | 
| static void callback | ( | void * | priv_data, | |
| int | index, | |||
| uint8_t * | buf, | |||
| int | buf_size, | |||
| int64_t | time | |||
| ) |  [static] | 
        
Definition at line 205 of file dshow.c.
Referenced by av_log_set_callback(), dshow_open_device(), and libspeex_decode_init().
| static int dshow_add_device | ( | AVFormatContext * | avctx, | |
| enum dshowDeviceType | devtype | |||
| ) |  [static] | 
        
| static enum AVCodecID dshow_codecid | ( | DWORD | biCompression | ) |  [static] | 
        
| static int dshow_cycle_devices | ( | AVFormatContext * | avctx, | |
| ICreateDevEnum * | devenum, | |||
| enum dshowDeviceType | devtype, | |||
| IBaseFilter ** | pfilter | |||
| ) |  [static] | 
        
Cycle through available devices using the device enumerator devenum, retrieve the device with type specified by devtype and return the pointer to the object found in *pfilter.
If pfilter is NULL, list all device names.
Definition at line 252 of file dshow.c.
Referenced by dshow_list_device_options(), dshow_open_device(), and dshow_read_header().
| static void dshow_cycle_formats | ( | AVFormatContext * | avctx, | |
| enum dshowDeviceType | devtype, | |||
| IPin * | pin, | |||
| int * | pformat_set | |||
| ) |  [static] | 
        
Cycle through available formats using the specified pin, try to set parameters specified through AVOptions and if successful return 1 in *pformat_set.
If pformat_set is NULL, list all pin capabilities.
Definition at line 331 of file dshow.c.
Referenced by dshow_cycle_pins().
| static int dshow_cycle_pins | ( | AVFormatContext * | avctx, | |
| enum dshowDeviceType | devtype, | |||
| IBaseFilter * | device_filter, | |||
| IPin ** | ppin | |||
| ) |  [static] | 
        
Cycle through available pins using the device_filter device, of type devtype, retrieve the first output pin and return the pointer to the object found in *ppin.
If ppin is NULL, cycle through all pins listing audio/video capabilities.
Definition at line 524 of file dshow.c.
Referenced by dshow_list_device_options(), and dshow_open_device().
| static int dshow_list_device_options | ( | AVFormatContext * | avctx, | |
| ICreateDevEnum * | devenum, | |||
| enum dshowDeviceType | devtype | |||
| ) |  [static] | 
        
List options for device with type devtype.
| devenum | device enumerator used for accessing the device | 
Definition at line 637 of file dshow.c.
Referenced by dshow_read_header().
| static int dshow_open_device | ( | AVFormatContext * | avctx, | |
| ICreateDevEnum * | devenum, | |||
| enum dshowDeviceType | devtype | |||
| ) |  [static] | 
        
| static enum PixelFormat dshow_pixfmt | ( | DWORD | biCompression, | |
| WORD | biBitCount | |||
| ) |  [static] | 
        
| static int dshow_read_close | ( | AVFormatContext * | s | ) |  [static] | 
        
| static int dshow_read_header | ( | AVFormatContext * | avctx | ) |  [static] | 
        
| static int dshow_read_packet | ( | AVFormatContext * | s, | |
| AVPacket * | pkt | |||
| ) |  [static] | 
        
| static int dshow_set_audio_buffer_size | ( | AVFormatContext * | avctx, | |
| IPin * | pin | |||
| ) |  [static] | 
        
Set audio device buffer size in milliseconds (which can directly impact latency, depending on the device).
Definition at line 477 of file dshow.c.
Referenced by dshow_cycle_pins().
| static char* dup_wchar_to_utf8 | ( | wchar_t * | w | ) |  [static] | 
        
| static int parse_device_name | ( | AVFormatContext * | avctx | ) |  [static] | 
        
| static enum AVSampleFormat sample_fmt_bits_per_sample | ( | int | bits | ) |  [static] | 
        
| static int shall_we_drop | ( | AVFormatContext * | s | ) |  [static] | 
        
| static enum AVCodecID waveform_codec_id | ( | enum AVSampleFormat | sample_fmt | ) |  [static] | 
        
const AVClass dshow_class [static]           | 
        
Initial value:
 {
    .class_name = "DirectShow indev",
    .item_name  = av_default_item_name,
    .option     = options,
    .version    = LIBAVUTIL_VERSION_INT,
}
Initial value:
 {
    .name           = "dshow",
    .long_name      = NULL_IF_CONFIG_SMALL("DirectShow capture"),
    .priv_data_size = sizeof(struct dshow_ctx),
    .read_header    = dshow_read_header,
    .read_packet    = dshow_read_packet,
    .read_close     = dshow_read_close,
    .flags          = AVFMT_NOFILE,
    .priv_class     = &dshow_class,
}
Initial value:
 {
    { "video_size", "set video size given a string such as 640x480 or hd720.", OFFSET(requested_width), AV_OPT_TYPE_IMAGE_SIZE, {.str = NULL}, 0, 0, DEC },
    { "pixel_format", "set video pixel format", OFFSET(pixel_format), AV_OPT_TYPE_PIXEL_FMT, {.str = NULL}, 0, 0, DEC },
    { "framerate", "set video frame rate", OFFSET(framerate), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC },
    { "sample_rate", "set audio sample rate", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, DEC },
    { "sample_size", "set audio sample size", OFFSET(sample_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 16, DEC },
    { "channels", "set number of audio channels, such as 1 or 2", OFFSET(channels), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, DEC },
    { "list_devices", "list available devices", OFFSET(list_devices), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, DEC, "list_devices" },
    { "true", "", 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, DEC, "list_devices" },
    { "false", "", 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, DEC, "list_devices" },
    { "list_options", "list available options for specified device", OFFSET(list_options), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, DEC, "list_options" },
    { "true", "", 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, DEC, "list_options" },
    { "false", "", 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, DEC, "list_options" },
    { "video_device_number", "set video device number for devices with same name (starts at 0)", OFFSET(video_device_number), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, DEC },
    { "audio_device_number", "set audio device number for devices with same name (starts at 0)", OFFSET(audio_device_number), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, DEC },
    { "audio_buffer_size", "set audio device buffer latency size in milliseconds (default is the device's default)", OFFSET(audio_buffer_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, DEC },
    { NULL },
}
 1.5.8