[Title] changed the tab size
authorJinhyung Jo <jinhyung.jo@samsung.com>
Thu, 29 Mar 2012 11:59:24 +0000 (20:59 +0900)
committerJinhyung Jo <jinhyung.jo@samsung.com>
Thu, 29 Mar 2012 11:59:24 +0000 (20:59 +0900)
[Type] Enhancement
[Module] Emulator / Camera
[Priority] Minor
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]

tizen/src/hw/maru_camera_common.h
tizen/src/hw/maru_camera_common_pci.c
tizen/src/hw/maru_camera_linux_pci.c
tizen/src/hw/maru_camera_win32_interface.h
tizen/src/hw/maru_camera_win32_pci.c

index 5d5cf7a28cd7a181623e7a5f26b5e9c04c63e039..6d45c3948d202e648bf8f2305e050841acc9e796 100644 (file)
@@ -32,7 +32,7 @@
 #include "pci.h"\r
 #include "qemu-thread.h"\r
 \r
-#define MARUCAM_MAX_PARAM       20\r
+#define MARUCAM_MAX_PARAM    20\r
 \r
 /* must sync with GUEST camera_driver */\r
 #define MARUCAM_CMD_INIT           0x00\r
@@ -62,30 +62,30 @@ typedef struct MaruCamState MaruCamState;
 typedef struct MaruCamParam MaruCamParam;\r
 \r
 struct MaruCamParam {\r
-       uint32_t        top;\r
-       uint32_t        retVal;\r
-       uint32_t        errCode;\r
-       uint32_t        stack[MARUCAM_MAX_PARAM];\r
+    uint32_t    top;\r
+    uint32_t    retVal;\r
+    uint32_t    errCode;\r
+    uint32_t    stack[MARUCAM_MAX_PARAM];\r
 };\r
 \r
 struct MaruCamState {\r
-       PCIDevice           dev;\r
-       MaruCamParam        *param;\r
-       QemuThread          thread_id;\r
-       QemuMutex           thread_mutex;;\r
-       QemuCond            thread_cond;\r
+    PCIDevice           dev;\r
+    MaruCamParam        *param;\r
+    QemuThread          thread_id;\r
+    QemuMutex           thread_mutex;;\r
+    QemuCond            thread_cond;\r
 \r
-       void                *vaddr;             /* vram ptr */\r
-       uint32_t            streamon;\r
-       uint32_t            buf_size;\r
-       uint32_t            req_frame;\r
+    void                *vaddr;     /* vram ptr */\r
+    uint32_t            streamon;\r
+    uint32_t            buf_size;\r
+    uint32_t            req_frame;\r
 \r
     MemoryRegion        vram;\r
     MemoryRegion        mmio;\r
 };\r
 \r
 /* ----------------------------------------------------------------------------- */\r
-/* Fucntion prototype                                                                               */\r
+/* Fucntion prototype                                                            */\r
 /* ----------------------------------------------------------------------------- */\r
 void marucam_device_init(MaruCamState *state);\r
 void marucam_device_open(MaruCamState *state);\r
@@ -105,4 +105,4 @@ void marucam_device_enum_fsizes(MaruCamState *state);
 void marucam_device_enum_fintv(MaruCamState *state);\r
 \r
 \r
-#endif /* _MARU_CAMERA_COMMON_H_ */\r
+#endif  /* _MARU_CAMERA_COMMON_H_ */\r
index 5ee1df784b29ceb981340d5e70c9fd33bab0d257..996fa42140e767cb4fabbc0b4d14b7c4d5bc03aa 100644 (file)
 \r
 MULTI_DEBUG_CHANNEL(tizen, camera_pci);\r
 \r
-#define MARU_PCI_CAMERA_DEVICE_NAME            "maru_camera_pci"\r
+#define MARU_PCI_CAMERA_DEVICE_NAME     "maru_camera_pci"\r
 \r
-#define MARUCAM_MEM_SIZE               (4 * 1024 * 1024)       // 4MB\r
-#define MARUCAM_REG_SIZE               (256)                           // 64 * 4\r
+#define MARUCAM_MEM_SIZE        (4 * 1024 * 1024)   // 4MB\r
+#define MARUCAM_REG_SIZE        (256)               // 64 * 4\r
 \r
 /*\r
  *  I/O functions\r
  */\r
 static inline uint32_t marucam_mmio_read(void *opaque, target_phys_addr_t offset)\r
 {\r
-       uint32_t ret = 0;\r
-       MaruCamState *state = (MaruCamState*)opaque;\r
-\r
-       switch (offset & 0xFF) {\r
-       case MARUCAM_CMD_ISSTREAM:\r
-               qemu_mutex_lock(&state->thread_mutex);\r
-               ret = state->streamon;\r
-               qemu_mutex_unlock(&state->thread_mutex);\r
-               break;\r
-       case MARUCAM_CMD_G_DATA:\r
-               ret = state->param->stack[state->param->top++];\r
-               break;\r
-       case MARUCAM_CMD_OPEN:\r
-       case MARUCAM_CMD_CLOSE:\r
-       case MARUCAM_CMD_START_PREVIEW:\r
-       case MARUCAM_CMD_STOP_PREVIEW:\r
-       case MARUCAM_CMD_S_PARAM:\r
-       case MARUCAM_CMD_G_PARAM:\r
-       case MARUCAM_CMD_ENUM_FMT:\r
-       case MARUCAM_CMD_TRY_FMT:\r
-       case MARUCAM_CMD_S_FMT:\r
-       case MARUCAM_CMD_G_FMT:\r
-       case MARUCAM_CMD_QCTRL:\r
-       case MARUCAM_CMD_S_CTRL:\r
-       case MARUCAM_CMD_G_CTRL:\r
-       case MARUCAM_CMD_ENUM_FSIZES:\r
-       case MARUCAM_CMD_ENUM_FINTV:\r
-               ret = state->param->errCode;\r
-               state->param->errCode = 0;\r
-               break;\r
-       default:\r
-               WARN("Not supported command!!\n");\r
-               break;\r
-       }\r
-       return ret;\r
+    uint32_t ret = 0;\r
+    MaruCamState *state = (MaruCamState*)opaque;\r
+\r
+    switch (offset & 0xFF) {\r
+    case MARUCAM_CMD_ISSTREAM:\r
+        qemu_mutex_lock(&state->thread_mutex);\r
+        ret = state->streamon;\r
+        qemu_mutex_unlock(&state->thread_mutex);\r
+        break;\r
+    case MARUCAM_CMD_G_DATA:\r
+        ret = state->param->stack[state->param->top++];\r
+        break;\r
+    case MARUCAM_CMD_OPEN:\r
+    case MARUCAM_CMD_CLOSE:\r
+    case MARUCAM_CMD_START_PREVIEW:\r
+    case MARUCAM_CMD_STOP_PREVIEW:\r
+    case MARUCAM_CMD_S_PARAM:\r
+    case MARUCAM_CMD_G_PARAM:\r
+    case MARUCAM_CMD_ENUM_FMT:\r
+    case MARUCAM_CMD_TRY_FMT:\r
+    case MARUCAM_CMD_S_FMT:\r
+    case MARUCAM_CMD_G_FMT:\r
+    case MARUCAM_CMD_QCTRL:\r
+    case MARUCAM_CMD_S_CTRL:\r
+    case MARUCAM_CMD_G_CTRL:\r
+    case MARUCAM_CMD_ENUM_FSIZES:\r
+    case MARUCAM_CMD_ENUM_FINTV:\r
+        ret = state->param->errCode;\r
+        state->param->errCode = 0;\r
+        break;\r
+    default:\r
+        WARN("Not supported command!!\n");\r
+        break;\r
+    }\r
+    return ret;\r
 }\r
 \r
 static inline void marucam_mmio_write(void *opaque, target_phys_addr_t offset, uint32_t value)\r
 {\r
-       MaruCamState *state = (MaruCamState*)opaque;\r
-       \r
-       switch(offset & 0xFF) {\r
-       case MARUCAM_CMD_OPEN:\r
-               marucam_device_open(state);\r
-               break;\r
-       case MARUCAM_CMD_CLOSE:\r
-               marucam_device_close(state);\r
-               break;\r
-       case MARUCAM_CMD_START_PREVIEW:\r
-               marucam_device_start_preview(state);\r
-               break;\r
-       case MARUCAM_CMD_STOP_PREVIEW:\r
-               marucam_device_stop_preview(state);\r
-               break;\r
-       case MARUCAM_CMD_S_PARAM:\r
-               marucam_device_s_param(state);\r
-               break;\r
-       case MARUCAM_CMD_G_PARAM:\r
-               marucam_device_g_param(state);\r
-               break;\r
-       case MARUCAM_CMD_ENUM_FMT:\r
-               marucam_device_enum_fmt(state);\r
-               break;\r
-       case MARUCAM_CMD_TRY_FMT:\r
-               marucam_device_try_fmt(state);\r
-               break;\r
-       case MARUCAM_CMD_S_FMT:\r
-               marucam_device_s_fmt(state);\r
-               break;\r
-       case MARUCAM_CMD_G_FMT:\r
-               marucam_device_g_fmt(state);\r
-               break;\r
-       case MARUCAM_CMD_QCTRL:\r
-               marucam_device_qctrl(state);\r
-               break;\r
-       case MARUCAM_CMD_S_CTRL:\r
-               marucam_device_s_ctrl(state);\r
-               break;\r
-       case MARUCAM_CMD_G_CTRL:\r
-               marucam_device_g_ctrl(state);\r
-               break;\r
-       case MARUCAM_CMD_ENUM_FSIZES:\r
-               marucam_device_enum_fsizes(state);\r
-               break;\r
-       case MARUCAM_CMD_ENUM_FINTV:\r
-               marucam_device_enum_fintv(state);\r
-               break;\r
-       case MARUCAM_CMD_S_DATA:\r
-               state->param->stack[state->param->top++] = value;\r
-               break;\r
-       case MARUCAM_CMD_DATACLR:\r
-               memset(state->param, 0, sizeof(MaruCamParam));\r
-               break;\r
-       case MARUCAM_CMD_CLRIRQ:\r
-               qemu_irq_lower(state->dev.irq[2]);\r
-               break;\r
-       case MARUCAM_CMD_REQFRAME:\r
-               qemu_mutex_lock(&state->thread_mutex);\r
-               state->req_frame = value + 1;\r
-               qemu_mutex_unlock(&state->thread_mutex);\r
-               break;\r
-       default:\r
-               WARN("Not supported command!!\n");\r
-               break;\r
-       }\r
+    MaruCamState *state = (MaruCamState*)opaque;\r
+    \r
+    switch(offset & 0xFF) {\r
+    case MARUCAM_CMD_OPEN:\r
+        marucam_device_open(state);\r
+        break;\r
+    case MARUCAM_CMD_CLOSE:\r
+        marucam_device_close(state);\r
+        break;\r
+    case MARUCAM_CMD_START_PREVIEW:\r
+        marucam_device_start_preview(state);\r
+        break;\r
+    case MARUCAM_CMD_STOP_PREVIEW:\r
+        marucam_device_stop_preview(state);\r
+        break;\r
+    case MARUCAM_CMD_S_PARAM:\r
+        marucam_device_s_param(state);\r
+        break;\r
+    case MARUCAM_CMD_G_PARAM:\r
+        marucam_device_g_param(state);\r
+        break;\r
+    case MARUCAM_CMD_ENUM_FMT:\r
+        marucam_device_enum_fmt(state);\r
+        break;\r
+    case MARUCAM_CMD_TRY_FMT:\r
+        marucam_device_try_fmt(state);\r
+        break;\r
+    case MARUCAM_CMD_S_FMT:\r
+        marucam_device_s_fmt(state);\r
+        break;\r
+    case MARUCAM_CMD_G_FMT:\r
+        marucam_device_g_fmt(state);\r
+        break;\r
+    case MARUCAM_CMD_QCTRL:\r
+        marucam_device_qctrl(state);\r
+        break;\r
+    case MARUCAM_CMD_S_CTRL:\r
+        marucam_device_s_ctrl(state);\r
+        break;\r
+    case MARUCAM_CMD_G_CTRL:\r
+        marucam_device_g_ctrl(state);\r
+        break;\r
+    case MARUCAM_CMD_ENUM_FSIZES:\r
+        marucam_device_enum_fsizes(state);\r
+        break;\r
+    case MARUCAM_CMD_ENUM_FINTV:\r
+        marucam_device_enum_fintv(state);\r
+        break;\r
+    case MARUCAM_CMD_S_DATA:\r
+        state->param->stack[state->param->top++] = value;\r
+        break;\r
+    case MARUCAM_CMD_DATACLR:\r
+        memset(state->param, 0, sizeof(MaruCamParam));\r
+        break;\r
+    case MARUCAM_CMD_CLRIRQ:\r
+        qemu_irq_lower(state->dev.irq[2]);\r
+        break;\r
+    case MARUCAM_CMD_REQFRAME:\r
+        qemu_mutex_lock(&state->thread_mutex);\r
+        state->req_frame = value + 1;\r
+        qemu_mutex_unlock(&state->thread_mutex);\r
+        break;\r
+    default:\r
+        WARN("Not supported command!!\n");\r
+        break;\r
+    }\r
 }\r
 \r
 static const MemoryRegionOps maru_camera_mmio_ops = {\r
@@ -184,10 +184,10 @@ static const MemoryRegionOps maru_camera_mmio_ops = {
  */\r
 static int marucam_initfn(PCIDevice *dev)\r
 {\r
-       MaruCamState *s = DO_UPCAST(MaruCamState, dev, dev);\r
-       uint8_t *pci_conf = s->dev.config;\r
+    MaruCamState *s = DO_UPCAST(MaruCamState, dev, dev);\r
+    uint8_t *pci_conf = s->dev.config;\r
 \r
-       pci_config_set_interrupt_pin(pci_conf, 0x03);\r
+    pci_config_set_interrupt_pin(pci_conf, 0x03);\r
 \r
     memory_region_init_ram(&s->vram, NULL, "marucamera.ram", MARUCAM_MEM_SIZE);\r
     s->vaddr = memory_region_get_ram_ptr(&s->vram);\r
@@ -196,14 +196,14 @@ static int marucam_initfn(PCIDevice *dev)
     pci_register_bar(&s->dev, 0, PCI_BASE_ADDRESS_MEM_PREFETCH, &s->vram);\r
     pci_register_bar(&s->dev, 1, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->mmio);\r
 \r
-       /* for worker thread */\r
-       s->param = (MaruCamParam*)g_malloc0(sizeof(MaruCamParam));\r
-       qemu_cond_init(&s->thread_cond);\r
-       qemu_mutex_init(&s->thread_mutex);\r
+    /* for worker thread */\r
+    s->param = (MaruCamParam*)g_malloc0(sizeof(MaruCamParam));\r
+    qemu_cond_init(&s->thread_cond);\r
+    qemu_mutex_init(&s->thread_mutex);\r
 \r
-       marucam_device_init(s);\r
+    marucam_device_init(s);\r
 \r
-       return 0;\r
+    return 0;\r
 }\r
 \r
 /*\r
@@ -211,11 +211,11 @@ static int marucam_initfn(PCIDevice *dev)
  */\r
 static int marucam_exitfn(PCIDevice *dev)\r
 {\r
-       MaruCamState *s = DO_UPCAST(MaruCamState, dev, dev);\r
+    MaruCamState *s = DO_UPCAST(MaruCamState, dev, dev);\r
 \r
-       g_free((gpointer)s->param);\r
-       qemu_cond_destroy(&s->thread_cond);\r
-       qemu_mutex_destroy(&s->thread_mutex);\r
+    g_free((gpointer)s->param);\r
+    qemu_cond_destroy(&s->thread_cond);\r
+    qemu_mutex_destroy(&s->thread_mutex);\r
 \r
     memory_region_destroy (&s->vram);\r
     memory_region_destroy (&s->mmio);\r
index 36f80c958bcb3031fa6b8e3c7ce757bde1e444e4..970cfc3133eefa84a21685490fe69326bbd7e16c 100644 (file)
@@ -47,116 +47,116 @@ static struct v4l2_format dst_fmt;
 \r
 static int xioctl(int fd, int req, void *arg)\r
 {\r
-       int r;\r
+    int r;\r
 \r
-       do {\r
-               r = v4l2_ioctl(fd, req, arg);\r
-       } while ( r < 0 && errno == EINTR);\r
+    do {\r
+        r = v4l2_ioctl(fd, req, arg);\r
+    } while ( r < 0 && errno == EINTR);\r
 \r
-       return r;\r
+    return r;\r
 }\r
 \r
-#define MARUCAM_CTRL_VALUE_MAX         20\r
-#define MARUCAM_CTRL_VALUE_MIN         1\r
-#define MARUCAM_CTRL_VALUE_MID         10\r
-#define MARUCAM_CTRL_VALUE_STEP                1\r
+#define MARUCAM_CTRL_VALUE_MAX      20\r
+#define MARUCAM_CTRL_VALUE_MIN      1\r
+#define MARUCAM_CTRL_VALUE_MID      10\r
+#define MARUCAM_CTRL_VALUE_STEP     1\r
 \r
 struct marucam_qctrl {\r
-       uint32_t id;\r
-       uint32_t hit;\r
-       int32_t min;\r
-       int32_t max;\r
-       int32_t step;\r
-       int32_t init_val;\r
+    uint32_t id;\r
+    uint32_t hit;\r
+    int32_t min;\r
+    int32_t max;\r
+    int32_t step;\r
+    int32_t init_val;\r
 };\r
 \r
 static struct marucam_qctrl qctrl_tbl[] = {\r
-       { V4L2_CID_BRIGHTNESS, 0, },\r
-       { V4L2_CID_CONTRAST, 0, },\r
-       { V4L2_CID_SATURATION,0, },\r
-       { V4L2_CID_SHARPNESS, 0, },\r
+    { V4L2_CID_BRIGHTNESS, 0, },\r
+    { V4L2_CID_CONTRAST, 0, },\r
+    { V4L2_CID_SATURATION,0, },\r
+    { V4L2_CID_SHARPNESS, 0, },\r
 };\r
 \r
 static void marucam_reset_controls(void)\r
 {\r
-       uint32_t i;\r
-       for (i = 0; i < ARRAY_SIZE(qctrl_tbl); i++) {\r
-               if (qctrl_tbl[i].hit) {\r
-                       struct v4l2_control ctrl = {0,};\r
-                       ctrl.id = qctrl_tbl[i].id;\r
-                       ctrl.value = qctrl_tbl[i].init_val;\r
-                       if (xioctl(v4l2_fd, VIDIOC_S_CTRL, &ctrl) < 0) {\r
-                               ERR("failed to set video control value while reset values : %s\n", strerror(errno));\r
-                       }\r
-               }\r
-       }\r
+    uint32_t i;\r
+    for (i = 0; i < ARRAY_SIZE(qctrl_tbl); i++) {\r
+        if (qctrl_tbl[i].hit) {\r
+            struct v4l2_control ctrl = {0,};\r
+            ctrl.id = qctrl_tbl[i].id;\r
+            ctrl.value = qctrl_tbl[i].init_val;\r
+            if (xioctl(v4l2_fd, VIDIOC_S_CTRL, &ctrl) < 0) {\r
+                ERR("failed to set video control value while reset values : %s\n", strerror(errno));\r
+            }\r
+        }\r
+    }\r
 }\r
 \r
 static int32_t value_convert_from_guest(int32_t min, int32_t max, int32_t value)\r
 {\r
-       double rate = 0.0;\r
-       int32_t dist = 0, ret = 0;\r
-\r
-       dist = max - min;\r
-\r
-       if (dist < MARUCAM_CTRL_VALUE_MAX) {\r
-               rate = (double)MARUCAM_CTRL_VALUE_MAX / (double)dist;\r
-               ret = min + (int32_t)(value / rate);\r
-       } else {\r
-               rate = (double)dist / (double)MARUCAM_CTRL_VALUE_MAX;\r
-               ret = min + (int32_t)(rate * value);\r
-       }\r
-       return ret;\r
+    double rate = 0.0;\r
+    int32_t dist = 0, ret = 0;\r
+\r
+    dist = max - min;\r
+\r
+    if (dist < MARUCAM_CTRL_VALUE_MAX) {\r
+        rate = (double)MARUCAM_CTRL_VALUE_MAX / (double)dist;\r
+        ret = min + (int32_t)(value / rate);\r
+    } else {\r
+        rate = (double)dist / (double)MARUCAM_CTRL_VALUE_MAX;\r
+        ret = min + (int32_t)(rate * value);\r
+    }\r
+    return ret;\r
 }\r
 \r
 static int32_t value_convert_to_guest(int32_t min, int32_t max, int32_t value)\r
 {\r
-       double rate  = 0.0;\r
-       int32_t dist = 0, ret = 0;\r
+    double rate  = 0.0;\r
+    int32_t dist = 0, ret = 0;\r
 \r
-       dist = max - min;\r
+    dist = max - min;\r
 \r
-       if (dist < MARUCAM_CTRL_VALUE_MAX) {\r
-               rate = (double)MARUCAM_CTRL_VALUE_MAX / (double)dist;\r
-               ret = (int32_t)((double)(value - min) * rate);\r
-       } else {\r
-               rate = (double)dist / (double)MARUCAM_CTRL_VALUE_MAX;\r
-               ret = (int32_t)((double)(value - min) / rate);\r
-       }\r
+    if (dist < MARUCAM_CTRL_VALUE_MAX) {\r
+        rate = (double)MARUCAM_CTRL_VALUE_MAX / (double)dist;\r
+        ret = (int32_t)((double)(value - min) * rate);\r
+    } else {\r
+        rate = (double)dist / (double)MARUCAM_CTRL_VALUE_MAX;\r
+        ret = (int32_t)((double)(value - min) / rate);\r
+    }\r
 \r
-       return ret;\r
+    return ret;\r
 }\r
 \r
 static int __v4l2_grab(MaruCamState *state)\r
 {\r
-       fd_set fds;\r
-       static uint32_t index = 0;\r
-       struct timeval tv;\r
-       void *buf;\r
-       int ret;\r
-       \r
-       FD_ZERO(&fds);\r
-       FD_SET(v4l2_fd, &fds);\r
-\r
-       tv.tv_sec = 2;\r
-       tv.tv_usec = 0;\r
-\r
-       ret = select(v4l2_fd + 1, &fds, NULL, NULL, &tv);\r
-       if ( ret < 0) {\r
-               if (errno == EINTR)\r
-                       return 0;\r
-               ERR("select : %s\n", strerror(errno));\r
-               return -1;\r
-       }\r
-       if (!ret) {\r
-               WARN("Timed out\n");\r
-               return 0;\r
-       }\r
-\r
-       if (!v4l2_fd || (v4l2_fd == -1)) {\r
-               WARN("file descriptor is closed or not opened \n");\r
-               return -1;\r
-       }\r
+    fd_set fds;\r
+    static uint32_t index = 0;\r
+    struct timeval tv;\r
+    void *buf;\r
+    int ret;\r
+    \r
+    FD_ZERO(&fds);\r
+    FD_SET(v4l2_fd, &fds);\r
+\r
+    tv.tv_sec = 2;\r
+    tv.tv_usec = 0;\r
+\r
+    ret = select(v4l2_fd + 1, &fds, NULL, NULL, &tv);\r
+    if ( ret < 0) {\r
+        if (errno == EINTR)\r
+            return 0;\r
+        ERR("select : %s\n", strerror(errno));\r
+        return -1;\r
+    }\r
+    if (!ret) {\r
+        WARN("Timed out\n");\r
+        return 0;\r
+    }\r
+\r
+    if (!v4l2_fd || (v4l2_fd == -1)) {\r
+        WARN("file descriptor is closed or not opened \n");\r
+        return -1;\r
+    }\r
 \r
        qemu_mutex_lock(&state->thread_mutex);\r
        ret = state->streamon;\r
@@ -164,118 +164,118 @@ static int __v4l2_grab(MaruCamState *state)
        if (!ret)\r
               return -1;\r
 \r
-       buf = state->vaddr + (state->buf_size * index);\r
-       ret = v4l2_read(v4l2_fd, buf, state->buf_size);\r
-       if ( ret < 0) {\r
-               switch (errno) {\r
-               case EINVAL:\r
-               case ENOMEM:\r
-                       ERR("v4l2_read failed : %s\n", strerror(errno));\r
-                       return -1;\r
-               case EAGAIN:\r
-               case EIO:\r
-               case EINTR:\r
-               default:\r
-                       if (convert_trial-- == -1) {\r
-                               ERR("Try count for v4l2_read is exceeded\n");\r
-                               return -1;\r
-                       }\r
-                       return 0;\r
-               }\r
-       }\r
-\r
-       index = !index;\r
-\r
-       qemu_mutex_lock(&state->thread_mutex);\r
-       if (state->streamon) {\r
-               if (state->req_frame) {\r
-                       qemu_irq_raise(state->dev.irq[2]);\r
-                       state->req_frame = 0;\r
-               }\r
-               ret = 1;\r
-       } else {\r
-               ret = -1;\r
-       }\r
-       qemu_mutex_unlock(&state->thread_mutex);\r
-\r
-       return ret;\r
+    buf = state->vaddr + (state->buf_size * index);\r
+    ret = v4l2_read(v4l2_fd, buf, state->buf_size);\r
+    if ( ret < 0) {\r
+        switch (errno) {\r
+        case EINVAL:\r
+        case ENOMEM:\r
+            ERR("v4l2_read failed : %s\n", strerror(errno));\r
+            return -1;\r
+        case EAGAIN:\r
+        case EIO:\r
+        case EINTR:\r
+        default:\r
+            if (convert_trial-- == -1) {\r
+                ERR("Try count for v4l2_read is exceeded\n");\r
+                return -1;\r
+            }\r
+            return 0;\r
+        }\r
+    }\r
+\r
+    index = !index;\r
+\r
+    qemu_mutex_lock(&state->thread_mutex);\r
+    if (state->streamon) {\r
+        if (state->req_frame) {\r
+            qemu_irq_raise(state->dev.irq[2]);\r
+            state->req_frame = 0;\r
+        }\r
+        ret = 1;\r
+    } else {\r
+        ret = -1;\r
+    }\r
+    qemu_mutex_unlock(&state->thread_mutex);\r
+\r
+    return ret;\r
 }\r
 \r
 // Worker thread\r
 static void *marucam_worker_thread(void *thread_param)\r
 {\r
-       MaruCamState *state = (MaruCamState*)thread_param;\r
+    MaruCamState *state = (MaruCamState*)thread_param;\r
 \r
 wait_worker_thread:\r
-       qemu_mutex_lock(&state->thread_mutex);\r
-       state->streamon = 0;\r
-       convert_trial = 10;\r
-       qemu_cond_wait(&state->thread_cond, &state->thread_mutex);\r
-       qemu_mutex_unlock(&state->thread_mutex);\r
-       INFO("Streaming on ......\n");\r
-\r
-       while (1)\r
-       {\r
-               qemu_mutex_lock(&state->thread_mutex);\r
-               if (state->streamon) {\r
-                       qemu_mutex_unlock(&state->thread_mutex);\r
-                       if (__v4l2_grab(state) < 0) {\r
-                               INFO("...... Streaming off\n");\r
-                               goto wait_worker_thread;\r
-                       }\r
-               } else {\r
-                       qemu_mutex_unlock(&state->thread_mutex);\r
-                       INFO("...... Streaming off\n");\r
-                       goto wait_worker_thread;\r
-               }\r
-       }\r
-       qemu_thread_exit((void*)0);\r
+    qemu_mutex_lock(&state->thread_mutex);\r
+    state->streamon = 0;\r
+    convert_trial = 10;\r
+    qemu_cond_wait(&state->thread_cond, &state->thread_mutex);\r
+    qemu_mutex_unlock(&state->thread_mutex);\r
+    INFO("Streaming on ......\n");\r
+\r
+    while (1)\r
+    {\r
+        qemu_mutex_lock(&state->thread_mutex);\r
+        if (state->streamon) {\r
+            qemu_mutex_unlock(&state->thread_mutex);\r
+            if (__v4l2_grab(state) < 0) {\r
+                INFO("...... Streaming off\n");\r
+                goto wait_worker_thread;\r
+            }\r
+        } else {\r
+            qemu_mutex_unlock(&state->thread_mutex);\r
+            INFO("...... Streaming off\n");\r
+            goto wait_worker_thread;\r
+        }\r
+    }\r
+    qemu_thread_exit((void*)0);\r
 }\r
 \r
 void marucam_device_init(MaruCamState* state)\r
 {\r
-       qemu_thread_create(&state->thread_id, marucam_worker_thread, (void*)state);\r
+    qemu_thread_create(&state->thread_id, marucam_worker_thread, (void*)state);\r
 }\r
 \r
 // MARUCAM_CMD_OPEN\r
 void marucam_device_open(MaruCamState* state)\r
 {\r
-       struct v4l2_capability cap;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       v4l2_fd = v4l2_open("/dev/video0", O_RDWR);\r
-       if (v4l2_fd < 0) {\r
-               ERR("v4l2 device open failed.(/dev/video0)\n");\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-       if (xioctl(v4l2_fd, VIDIOC_QUERYCAP, &cap) < 0) {\r
-               ERR("Could not qeury video capabilities\n");\r
-               v4l2_close(v4l2_fd);\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-       if (!(cap.capabilities & V4L2_CAP_VIDEO_CAPTURE) ||\r
-                       !(cap.capabilities & V4L2_CAP_STREAMING)) {\r
-               ERR("Not supported video driver.\n");\r
-               v4l2_close(v4l2_fd);\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-\r
-       memset(&dst_fmt, 0, sizeof(dst_fmt));\r
-       INFO("Opened\n");\r
+    struct v4l2_capability cap;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    v4l2_fd = v4l2_open("/dev/video0", O_RDWR);\r
+    if (v4l2_fd < 0) {\r
+        ERR("v4l2 device open failed.(/dev/video0)\n");\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+    if (xioctl(v4l2_fd, VIDIOC_QUERYCAP, &cap) < 0) {\r
+        ERR("Could not qeury video capabilities\n");\r
+        v4l2_close(v4l2_fd);\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+    if (!(cap.capabilities & V4L2_CAP_VIDEO_CAPTURE) ||\r
+            !(cap.capabilities & V4L2_CAP_STREAMING)) {\r
+        ERR("Not supported video driver.\n");\r
+        v4l2_close(v4l2_fd);\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+\r
+    memset(&dst_fmt, 0, sizeof(dst_fmt));\r
+    INFO("Opened\n");\r
 }\r
 \r
 // MARUCAM_CMD_START_PREVIEW\r
 void marucam_device_start_preview(MaruCamState* state)\r
 {\r
-       qemu_mutex_lock(&state->thread_mutex);\r
-       state->streamon = 1;\r
-       state->buf_size = dst_fmt.fmt.pix.sizeimage;\r
-       qemu_cond_signal(&state->thread_cond);\r
-       qemu_mutex_unlock(&state->thread_mutex);\r
+    qemu_mutex_lock(&state->thread_mutex);\r
+    state->streamon = 1;\r
+    state->buf_size = dst_fmt.fmt.pix.sizeimage;\r
+    qemu_cond_signal(&state->thread_cond);\r
+    qemu_mutex_unlock(&state->thread_mutex);\r
        INFO("Starting preview!\n");\r
 }\r
 \r
@@ -286,365 +286,365 @@ void marucam_device_stop_preview(MaruCamState* state)
        req.tv_sec = 0;\r
        req.tv_nsec = 333333333;\r
 \r
-       qemu_mutex_lock(&state->thread_mutex);\r
-       state->streamon = 0;\r
-       state->buf_size = 0;\r
-       qemu_mutex_unlock(&state->thread_mutex);\r
-       nanosleep(&req, NULL);\r
+    qemu_mutex_lock(&state->thread_mutex);\r
+    state->streamon = 0;\r
+    state->buf_size = 0;\r
+    qemu_mutex_unlock(&state->thread_mutex);\r
+    nanosleep(&req, NULL);\r
        INFO("Stopping preview!\n");\r
 }\r
 \r
 void marucam_device_s_param(MaruCamState* state)\r
 {\r
-       struct v4l2_streamparm sp;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&sp, 0, sizeof(struct v4l2_streamparm));\r
-       sp.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
-       sp.parm.capture.timeperframe.numerator = param->stack[0];\r
-       sp.parm.capture.timeperframe.denominator = param->stack[1];\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_S_PARM, &sp) < 0) {\r
-               ERR("failed to set FPS: %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-       }\r
+    struct v4l2_streamparm sp;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&sp, 0, sizeof(struct v4l2_streamparm));\r
+    sp.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
+    sp.parm.capture.timeperframe.numerator = param->stack[0];\r
+    sp.parm.capture.timeperframe.denominator = param->stack[1];\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_S_PARM, &sp) < 0) {\r
+        ERR("failed to set FPS: %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+    }\r
 }\r
 \r
 void marucam_device_g_param(MaruCamState* state)\r
 {\r
-       struct v4l2_streamparm sp;\r
-       MaruCamParam *param = state->param;\r
-       \r
-       param->top = 0;\r
-       memset(&sp, 0, sizeof(struct v4l2_streamparm));\r
-       sp.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_G_PARM, &sp) < 0) {\r
-               ERR("failed to get FPS: %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-               return;\r
-       }\r
-       param->stack[0] = sp.parm.capture.capability;\r
-       param->stack[1] = sp.parm.capture.timeperframe.numerator;\r
-       param->stack[2] = sp.parm.capture.timeperframe.denominator;\r
+    struct v4l2_streamparm sp;\r
+    MaruCamParam *param = state->param;\r
+    \r
+    param->top = 0;\r
+    memset(&sp, 0, sizeof(struct v4l2_streamparm));\r
+    sp.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_G_PARM, &sp) < 0) {\r
+        ERR("failed to get FPS: %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+        return;\r
+    }\r
+    param->stack[0] = sp.parm.capture.capability;\r
+    param->stack[1] = sp.parm.capture.timeperframe.numerator;\r
+    param->stack[2] = sp.parm.capture.timeperframe.denominator;\r
 }\r
 \r
 void marucam_device_s_fmt(MaruCamState* state)\r
 {\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&dst_fmt, 0, sizeof(struct v4l2_format));\r
-       dst_fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
-       dst_fmt.fmt.pix.width = param->stack[0];\r
-       dst_fmt.fmt.pix.height = param->stack[1];\r
-       dst_fmt.fmt.pix.pixelformat = param->stack[2];\r
-       dst_fmt.fmt.pix.field = param->stack[3];\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_S_FMT, &dst_fmt) < 0) {\r
-               ERR("failed to set video format: %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-               return;\r
-       }\r
-\r
-       param->stack[0] = dst_fmt.fmt.pix.width;\r
-       param->stack[1] = dst_fmt.fmt.pix.height;\r
-       param->stack[2] = dst_fmt.fmt.pix.field;\r
-       param->stack[3] = dst_fmt.fmt.pix.pixelformat;\r
-       param->stack[4] = dst_fmt.fmt.pix.bytesperline;\r
-       param->stack[5] = dst_fmt.fmt.pix.sizeimage;\r
-       param->stack[6] = dst_fmt.fmt.pix.colorspace;\r
-       param->stack[7] = dst_fmt.fmt.pix.priv;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&dst_fmt, 0, sizeof(struct v4l2_format));\r
+    dst_fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
+    dst_fmt.fmt.pix.width = param->stack[0];\r
+    dst_fmt.fmt.pix.height = param->stack[1];\r
+    dst_fmt.fmt.pix.pixelformat = param->stack[2];\r
+    dst_fmt.fmt.pix.field = param->stack[3];\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_S_FMT, &dst_fmt) < 0) {\r
+        ERR("failed to set video format: %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+        return;\r
+    }\r
+\r
+    param->stack[0] = dst_fmt.fmt.pix.width;\r
+    param->stack[1] = dst_fmt.fmt.pix.height;\r
+    param->stack[2] = dst_fmt.fmt.pix.field;\r
+    param->stack[3] = dst_fmt.fmt.pix.pixelformat;\r
+    param->stack[4] = dst_fmt.fmt.pix.bytesperline;\r
+    param->stack[5] = dst_fmt.fmt.pix.sizeimage;\r
+    param->stack[6] = dst_fmt.fmt.pix.colorspace;\r
+    param->stack[7] = dst_fmt.fmt.pix.priv;\r
 }\r
 \r
 void marucam_device_g_fmt(MaruCamState* state)\r
 {\r
-       struct v4l2_format format;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&format, 0, sizeof(struct v4l2_format));\r
-       format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_G_FMT, &format) < 0) {\r
-               ERR("failed to get video format: %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-       } else {\r
-               param->stack[0] = format.fmt.pix.width;\r
-               param->stack[1] = format.fmt.pix.height;\r
-               param->stack[2] = format.fmt.pix.field;\r
-               param->stack[3] = format.fmt.pix.pixelformat;\r
-               param->stack[4] = format.fmt.pix.bytesperline;\r
-               param->stack[5] = format.fmt.pix.sizeimage;\r
-               param->stack[6] = format.fmt.pix.colorspace;\r
-               param->stack[7] = format.fmt.pix.priv;\r
-               memcpy(&dst_fmt, &format, sizeof(format));\r
-       }\r
+    struct v4l2_format format;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&format, 0, sizeof(struct v4l2_format));\r
+    format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_G_FMT, &format) < 0) {\r
+        ERR("failed to get video format: %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+    } else {\r
+        param->stack[0] = format.fmt.pix.width;\r
+        param->stack[1] = format.fmt.pix.height;\r
+        param->stack[2] = format.fmt.pix.field;\r
+        param->stack[3] = format.fmt.pix.pixelformat;\r
+        param->stack[4] = format.fmt.pix.bytesperline;\r
+        param->stack[5] = format.fmt.pix.sizeimage;\r
+        param->stack[6] = format.fmt.pix.colorspace;\r
+        param->stack[7] = format.fmt.pix.priv;\r
+        memcpy(&dst_fmt, &format, sizeof(format));\r
+    }\r
 }\r
 \r
 void marucam_device_try_fmt(MaruCamState* state)\r
 {\r
-       struct v4l2_format format;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&format, 0, sizeof(struct v4l2_format));\r
-       format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
-       format.fmt.pix.width = param->stack[0];\r
-       format.fmt.pix.height = param->stack[1];\r
-       format.fmt.pix.pixelformat = param->stack[2];\r
-       format.fmt.pix.field = param->stack[3];\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_TRY_FMT, &format) < 0) {\r
-               ERR("failed to check video format: %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-               return;\r
-       }\r
-       param->stack[0] = format.fmt.pix.width;\r
-       param->stack[1] = format.fmt.pix.height;\r
-       param->stack[2] = format.fmt.pix.field;\r
-       param->stack[3] = format.fmt.pix.pixelformat;\r
-       param->stack[4] = format.fmt.pix.bytesperline;\r
-       param->stack[5] = format.fmt.pix.sizeimage;\r
-       param->stack[6] = format.fmt.pix.colorspace;\r
-       param->stack[7] = format.fmt.pix.priv;\r
+    struct v4l2_format format;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&format, 0, sizeof(struct v4l2_format));\r
+    format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
+    format.fmt.pix.width = param->stack[0];\r
+    format.fmt.pix.height = param->stack[1];\r
+    format.fmt.pix.pixelformat = param->stack[2];\r
+    format.fmt.pix.field = param->stack[3];\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_TRY_FMT, &format) < 0) {\r
+        ERR("failed to check video format: %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+        return;\r
+    }\r
+    param->stack[0] = format.fmt.pix.width;\r
+    param->stack[1] = format.fmt.pix.height;\r
+    param->stack[2] = format.fmt.pix.field;\r
+    param->stack[3] = format.fmt.pix.pixelformat;\r
+    param->stack[4] = format.fmt.pix.bytesperline;\r
+    param->stack[5] = format.fmt.pix.sizeimage;\r
+    param->stack[6] = format.fmt.pix.colorspace;\r
+    param->stack[7] = format.fmt.pix.priv;\r
 }\r
 \r
 void marucam_device_enum_fmt(MaruCamState* state)\r
 {\r
-       struct v4l2_fmtdesc format;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&format, 0, sizeof(struct v4l2_fmtdesc));\r
-       format.index = param->stack[0];\r
-       format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_ENUM_FMT, &format) < 0) {\r
-               if (errno != EINVAL)\r
-                       ERR("failed to enumerate video formats: %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-               return;\r
-       }\r
-       param->stack[0] = format.index;\r
-       param->stack[1] = format.flags;\r
-       param->stack[2] = format.pixelformat;\r
-       /* set description */\r
-       memcpy(&param->stack[3], format.description, sizeof(format.description));\r
+    struct v4l2_fmtdesc format;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&format, 0, sizeof(struct v4l2_fmtdesc));\r
+    format.index = param->stack[0];\r
+    format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_ENUM_FMT, &format) < 0) {\r
+        if (errno != EINVAL)\r
+            ERR("failed to enumerate video formats: %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+        return;\r
+    }\r
+    param->stack[0] = format.index;\r
+    param->stack[1] = format.flags;\r
+    param->stack[2] = format.pixelformat;\r
+    /* set description */\r
+    memcpy(&param->stack[3], format.description, sizeof(format.description));\r
 }\r
 \r
 void marucam_device_qctrl(MaruCamState* state)\r
 {\r
-       uint32_t i;\r
-       char name[32] = {0,};\r
-       struct v4l2_queryctrl ctrl;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&ctrl, 0, sizeof(struct v4l2_queryctrl));\r
-       ctrl.id = param->stack[0];\r
-\r
-       switch (ctrl.id) {\r
-       case V4L2_CID_BRIGHTNESS:\r
-               TRACE("Query : BRIGHTNESS\n");\r
-               memcpy((void*)name, (void*)"brightness", 32);\r
-               i = 0;\r
-               break;\r
-       case V4L2_CID_CONTRAST:\r
-               TRACE("Query : CONTRAST\n");\r
-               memcpy((void*)name, (void*)"contrast", 32);\r
-               i = 1;\r
-               break;\r
-       case V4L2_CID_SATURATION:\r
-               TRACE("Query : SATURATION\n");\r
-               memcpy((void*)name, (void*)"saturation", 32);\r
-               i = 2;\r
-               break;\r
-       case V4L2_CID_SHARPNESS:\r
-               TRACE("Query : SHARPNESS\n");\r
-               memcpy((void*)name, (void*)"sharpness", 32);\r
-               i = 3;\r
-               break;\r
-       default:\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_QUERYCTRL, &ctrl) < 0) {\r
-               if (errno != EINVAL)\r
-                       ERR("failed to query video controls : %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-               return;\r
-       } else {\r
-               struct v4l2_control sctrl;\r
-               memset(&sctrl, 0, sizeof(struct v4l2_control));\r
-               sctrl.id = ctrl.id;\r
-               if ((ctrl.maximum + ctrl.minimum) == 0) {\r
-                       sctrl.value = 0;\r
-               } else {\r
-                       sctrl.value = (ctrl.maximum + ctrl.minimum) / 2;\r
-               }\r
-               if (xioctl(v4l2_fd, VIDIOC_S_CTRL, &sctrl) < 0) {\r
-                       ERR("failed to set video control value : %s\n", strerror(errno));\r
-                       param->errCode = errno;\r
-                       return;\r
-               }\r
-               qctrl_tbl[i].hit = 1;\r
-               qctrl_tbl[i].min = ctrl.minimum;\r
-               qctrl_tbl[i].max = ctrl.maximum;\r
-               qctrl_tbl[i].step = ctrl.step;\r
-               qctrl_tbl[i].init_val = ctrl.default_value;\r
-       }\r
-\r
-       // set fixed values by FW configuration file\r
-       param->stack[0] = ctrl.id;\r
-       param->stack[1] = MARUCAM_CTRL_VALUE_MIN;       // minimum\r
-       param->stack[2] = MARUCAM_CTRL_VALUE_MAX;       // maximum\r
-       param->stack[3] = MARUCAM_CTRL_VALUE_STEP;// step\r
-       param->stack[4] = MARUCAM_CTRL_VALUE_MID;       // default_value\r
-       param->stack[5] = ctrl.flags;\r
-       /* name field setting */\r
-       memcpy(&param->stack[6], (void*)name, sizeof(ctrl.name));\r
+    uint32_t i;\r
+    char name[32] = {0,};\r
+    struct v4l2_queryctrl ctrl;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&ctrl, 0, sizeof(struct v4l2_queryctrl));\r
+    ctrl.id = param->stack[0];\r
+\r
+    switch (ctrl.id) {\r
+    case V4L2_CID_BRIGHTNESS:\r
+        TRACE("Query : BRIGHTNESS\n");\r
+        memcpy((void*)name, (void*)"brightness", 32);\r
+        i = 0;\r
+        break;\r
+    case V4L2_CID_CONTRAST:\r
+        TRACE("Query : CONTRAST\n");\r
+        memcpy((void*)name, (void*)"contrast", 32);\r
+        i = 1;\r
+        break;\r
+    case V4L2_CID_SATURATION:\r
+        TRACE("Query : SATURATION\n");\r
+        memcpy((void*)name, (void*)"saturation", 32);\r
+        i = 2;\r
+        break;\r
+    case V4L2_CID_SHARPNESS:\r
+        TRACE("Query : SHARPNESS\n");\r
+        memcpy((void*)name, (void*)"sharpness", 32);\r
+        i = 3;\r
+        break;\r
+    default:\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_QUERYCTRL, &ctrl) < 0) {\r
+        if (errno != EINVAL)\r
+            ERR("failed to query video controls : %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+        return;\r
+    } else {\r
+        struct v4l2_control sctrl;\r
+        memset(&sctrl, 0, sizeof(struct v4l2_control));\r
+        sctrl.id = ctrl.id;\r
+        if ((ctrl.maximum + ctrl.minimum) == 0) {\r
+            sctrl.value = 0;\r
+        } else {\r
+            sctrl.value = (ctrl.maximum + ctrl.minimum) / 2;\r
+        }\r
+        if (xioctl(v4l2_fd, VIDIOC_S_CTRL, &sctrl) < 0) {\r
+            ERR("failed to set video control value : %s\n", strerror(errno));\r
+            param->errCode = errno;\r
+            return;\r
+        }\r
+        qctrl_tbl[i].hit = 1;\r
+        qctrl_tbl[i].min = ctrl.minimum;\r
+        qctrl_tbl[i].max = ctrl.maximum;\r
+        qctrl_tbl[i].step = ctrl.step;\r
+        qctrl_tbl[i].init_val = ctrl.default_value;\r
+    }\r
+\r
+    // set fixed values by FW configuration file\r
+    param->stack[0] = ctrl.id;\r
+    param->stack[1] = MARUCAM_CTRL_VALUE_MIN;   // minimum\r
+    param->stack[2] = MARUCAM_CTRL_VALUE_MAX;   // maximum\r
+    param->stack[3] = MARUCAM_CTRL_VALUE_STEP;// step\r
+    param->stack[4] = MARUCAM_CTRL_VALUE_MID;   // default_value\r
+    param->stack[5] = ctrl.flags;\r
+    /* name field setting */\r
+    memcpy(&param->stack[6], (void*)name, sizeof(ctrl.name));\r
 }\r
 \r
 void marucam_device_s_ctrl(MaruCamState* state)\r
 {\r
-       uint32_t i;\r
-       struct v4l2_control ctrl;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&ctrl, 0, sizeof(struct v4l2_control));\r
-       ctrl.id = param->stack[0];\r
-\r
-       switch (ctrl.id) {\r
-       case V4L2_CID_BRIGHTNESS:\r
-               i = 0;\r
-               TRACE("%d is set to the value of the BRIGHTNESS\n", param->stack[1]);\r
-               break;\r
-       case V4L2_CID_CONTRAST:\r
-               i = 1;\r
-               TRACE("%d is set to the value of the CONTRAST\n", param->stack[1]);\r
-               break;\r
-       case V4L2_CID_SATURATION:\r
-               i = 2;\r
-               TRACE("%d is set to the value of the SATURATION\n", param->stack[1]);\r
-               break;\r
-       case V4L2_CID_SHARPNESS:\r
-               i = 3;\r
-               TRACE("%d is set to the value of the SHARPNESS\n", param->stack[1]);\r
-               break;\r
-       default:\r
-               ERR("our emulator does not support this control : 0x%x\n", ctrl.id);\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-\r
-       ctrl.value = value_convert_from_guest(qctrl_tbl[i].min,\r
-                       qctrl_tbl[i].max, param->stack[1]);\r
-       if (xioctl(v4l2_fd, VIDIOC_S_CTRL, &ctrl) < 0) {\r
-               ERR("failed to set video control value : value(%d), %s\n", param->stack[1], strerror(errno));\r
-               param->errCode = errno;\r
-               return;\r
-       }\r
+    uint32_t i;\r
+    struct v4l2_control ctrl;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&ctrl, 0, sizeof(struct v4l2_control));\r
+    ctrl.id = param->stack[0];\r
+\r
+    switch (ctrl.id) {\r
+    case V4L2_CID_BRIGHTNESS:\r
+        i = 0;\r
+        TRACE("%d is set to the value of the BRIGHTNESS\n", param->stack[1]);\r
+        break;\r
+    case V4L2_CID_CONTRAST:\r
+        i = 1;\r
+        TRACE("%d is set to the value of the CONTRAST\n", param->stack[1]);\r
+        break;\r
+    case V4L2_CID_SATURATION:\r
+        i = 2;\r
+        TRACE("%d is set to the value of the SATURATION\n", param->stack[1]);\r
+        break;\r
+    case V4L2_CID_SHARPNESS:\r
+        i = 3;\r
+        TRACE("%d is set to the value of the SHARPNESS\n", param->stack[1]);\r
+        break;\r
+    default:\r
+        ERR("our emulator does not support this control : 0x%x\n", ctrl.id);\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+\r
+    ctrl.value = value_convert_from_guest(qctrl_tbl[i].min,\r
+            qctrl_tbl[i].max, param->stack[1]);\r
+    if (xioctl(v4l2_fd, VIDIOC_S_CTRL, &ctrl) < 0) {\r
+        ERR("failed to set video control value : value(%d), %s\n", param->stack[1], strerror(errno));\r
+        param->errCode = errno;\r
+        return;\r
+    }\r
 }\r
 \r
 void marucam_device_g_ctrl(MaruCamState* state)\r
 {\r
-       uint32_t i;\r
-       struct v4l2_control ctrl;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&ctrl, 0, sizeof(struct v4l2_control));\r
-       ctrl.id = param->stack[0];\r
-\r
-       switch (ctrl.id) {\r
-       case V4L2_CID_BRIGHTNESS:\r
-               TRACE("Gets the value of the BRIGHTNESS\n");\r
-               i = 0;\r
-               break;\r
-       case V4L2_CID_CONTRAST:\r
-               TRACE("Gets the value of the CONTRAST\n");\r
-               i = 1;\r
-               break;\r
-       case V4L2_CID_SATURATION:\r
-               TRACE("Gets the value of the SATURATION\n");\r
-               i = 2;\r
-               break;\r
-       case V4L2_CID_SHARPNESS:\r
-               TRACE("Gets the value of the SHARPNESS\n");\r
-               i = 3;\r
-               break;\r
-       default:\r
-               ERR("our emulator does not support this control : 0x%x\n", ctrl.id);\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_G_CTRL, &ctrl) < 0) {\r
-               ERR("failed to get video control value : %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-               return;\r
-       }\r
-       param->stack[0] = value_convert_to_guest(qctrl_tbl[i].min,\r
-                       qctrl_tbl[i].max, ctrl.value);\r
-       TRACE("Value : %d\n", param->stack[0]);\r
+    uint32_t i;\r
+    struct v4l2_control ctrl;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&ctrl, 0, sizeof(struct v4l2_control));\r
+    ctrl.id = param->stack[0];\r
+\r
+    switch (ctrl.id) {\r
+    case V4L2_CID_BRIGHTNESS:\r
+        TRACE("Gets the value of the BRIGHTNESS\n");\r
+        i = 0;\r
+        break;\r
+    case V4L2_CID_CONTRAST:\r
+        TRACE("Gets the value of the CONTRAST\n");\r
+        i = 1;\r
+        break;\r
+    case V4L2_CID_SATURATION:\r
+        TRACE("Gets the value of the SATURATION\n");\r
+        i = 2;\r
+        break;\r
+    case V4L2_CID_SHARPNESS:\r
+        TRACE("Gets the value of the SHARPNESS\n");\r
+        i = 3;\r
+        break;\r
+    default:\r
+        ERR("our emulator does not support this control : 0x%x\n", ctrl.id);\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_G_CTRL, &ctrl) < 0) {\r
+        ERR("failed to get video control value : %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+        return;\r
+    }\r
+    param->stack[0] = value_convert_to_guest(qctrl_tbl[i].min,\r
+            qctrl_tbl[i].max, ctrl.value);\r
+    TRACE("Value : %d\n", param->stack[0]);\r
 }\r
 \r
 void marucam_device_enum_fsizes(MaruCamState* state)\r
 {\r
-       struct v4l2_frmsizeenum fsize;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&fsize, 0, sizeof(struct v4l2_frmsizeenum));\r
-       fsize.index = param->stack[0];\r
-       fsize.pixel_format = param->stack[1];\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_ENUM_FRAMESIZES, &fsize) < 0) {\r
-               if (errno != EINVAL)\r
-                       ERR("failed to get frame sizes : %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-               return;\r
-       }\r
-\r
-       if (fsize.type == V4L2_FRMSIZE_TYPE_DISCRETE) {\r
-               param->stack[0] = fsize.discrete.width;\r
-               param->stack[1] = fsize.discrete.height;\r
-       } else {\r
-               param->errCode = EINVAL;\r
-               ERR("Not Supported mode, we only support DISCRETE\n");\r
-       }\r
+    struct v4l2_frmsizeenum fsize;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&fsize, 0, sizeof(struct v4l2_frmsizeenum));\r
+    fsize.index = param->stack[0];\r
+    fsize.pixel_format = param->stack[1];\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_ENUM_FRAMESIZES, &fsize) < 0) {\r
+        if (errno != EINVAL)\r
+            ERR("failed to get frame sizes : %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+        return;\r
+    }\r
+\r
+    if (fsize.type == V4L2_FRMSIZE_TYPE_DISCRETE) {\r
+        param->stack[0] = fsize.discrete.width;\r
+        param->stack[1] = fsize.discrete.height;\r
+    } else {\r
+        param->errCode = EINVAL;\r
+        ERR("Not Supported mode, we only support DISCRETE\n");\r
+    }\r
 }\r
 \r
 void marucam_device_enum_fintv(MaruCamState* state)\r
 {\r
-       struct v4l2_frmivalenum ival;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       memset(&ival, 0, sizeof(struct v4l2_frmivalenum));\r
-       ival.index = param->stack[0];\r
-       ival.pixel_format = param->stack[1];\r
-       ival.width = param->stack[2];\r
-       ival.height = param->stack[3];\r
-\r
-       if (xioctl(v4l2_fd, VIDIOC_ENUM_FRAMEINTERVALS, &ival) < 0) {\r
-               if (errno != EINVAL)\r
-                       ERR("failed to get frame intervals : %s\n", strerror(errno));\r
-               param->errCode = errno;\r
-               return;\r
-       }\r
-\r
-       if (ival.type == V4L2_FRMIVAL_TYPE_DISCRETE) {\r
-               param->stack[0] = ival.discrete.numerator;\r
-               param->stack[1] = ival.discrete.denominator;\r
-       } else {\r
-               param->errCode = EINVAL;\r
-               ERR("Not Supported mode, we only support DISCRETE\n");\r
-       }\r
+    struct v4l2_frmivalenum ival;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    memset(&ival, 0, sizeof(struct v4l2_frmivalenum));\r
+    ival.index = param->stack[0];\r
+    ival.pixel_format = param->stack[1];\r
+    ival.width = param->stack[2];\r
+    ival.height = param->stack[3];\r
+\r
+    if (xioctl(v4l2_fd, VIDIOC_ENUM_FRAMEINTERVALS, &ival) < 0) {\r
+        if (errno != EINVAL)\r
+            ERR("failed to get frame intervals : %s\n", strerror(errno));\r
+        param->errCode = errno;\r
+        return;\r
+    }\r
+\r
+    if (ival.type == V4L2_FRMIVAL_TYPE_DISCRETE) {\r
+        param->stack[0] = ival.discrete.numerator;\r
+        param->stack[1] = ival.discrete.denominator;\r
+    } else {\r
+        param->errCode = EINVAL;\r
+        ERR("Not Supported mode, we only support DISCRETE\n");\r
+    }\r
 }\r
 \r
 // MARUCAM_CMD_CLOSE\r
@@ -652,16 +652,16 @@ void marucam_device_close(MaruCamState* state)
 {\r
        uint32_t is_streamon;\r
 \r
-       qemu_mutex_lock(&state->thread_mutex);\r
-       is_streamon = state->streamon;\r
-       qemu_mutex_unlock(&state->thread_mutex);\r
+    qemu_mutex_lock(&state->thread_mutex);\r
+    is_streamon = state->streamon;\r
+    qemu_mutex_unlock(&state->thread_mutex);\r
 \r
        if (is_streamon)\r
               marucam_device_stop_preview(state);\r
 \r
-       marucam_reset_controls();\r
+    marucam_reset_controls();\r
 \r
-       v4l2_close(v4l2_fd);\r
-       v4l2_fd = 0;\r
-       INFO("Closed\n");\r
+    v4l2_close(v4l2_fd);\r
+    v4l2_fd = 0;\r
+    INFO("Closed\n");\r
 }\r
index d68cb857464c0710fed73baf93a8e4eed23a7e15..6ae5e20334fd0960ac49230c1206d9a159b1688b 100644 (file)
@@ -57,8 +57,8 @@ typedef struct _FilterInfo {
 } FILTER_INFO;\r
 \r
 typedef enum _PinDirection\r
-{      PINDIR_INPUT    = 0,\r
-       PINDIR_OUTPUT   = ( PINDIR_INPUT + 1 )\r
+{   PINDIR_INPUT    = 0,\r
+    PINDIR_OUTPUT   = ( PINDIR_INPUT + 1 )\r
 } PIN_DIRECTION;\r
 \r
 typedef struct _PinInfo {\r
@@ -87,30 +87,30 @@ typedef struct _AMMediaType {
 } AM_MEDIA_TYPE;\r
 \r
 typedef enum tagVideoProcAmpFlags {\r
-       VideoProcAmp_Flags_Auto = 0x0001,\r
-       VideoProcAmp_Flags_Manual = 0x0002\r
+    VideoProcAmp_Flags_Auto = 0x0001,\r
+    VideoProcAmp_Flags_Manual = 0x0002\r
 } VideoProcAmpFlags;\r
 \r
 typedef enum tagVideoProcAmpProperty {\r
-       VideoProcAmp_Brightness,\r
-       VideoProcAmp_Contrast,\r
-       VideoProcAmp_Hue,\r
-       VideoProcAmp_Saturation,\r
-       VideoProcAmp_Sharpness,\r
-       VideoProcAmp_Gamma,\r
-       VideoProcAmp_ColorEnable,\r
-       VideoProcAmp_WhiteBalance,\r
-       VideoProcAmp_BacklightCompensation,\r
-       VideoProcAmp_Gain\r
+    VideoProcAmp_Brightness,\r
+    VideoProcAmp_Contrast,\r
+    VideoProcAmp_Hue,\r
+    VideoProcAmp_Saturation,\r
+    VideoProcAmp_Sharpness,\r
+    VideoProcAmp_Gamma,\r
+    VideoProcAmp_ColorEnable,\r
+    VideoProcAmp_WhiteBalance,\r
+    VideoProcAmp_BacklightCompensation,\r
+    VideoProcAmp_Gain\r
 } VideoProcAmpProperty;\r
 \r
 typedef struct tagVIDEOINFOHEADER {\r
-       RECT rcSource;\r
-       RECT rcTarget;\r
-       DWORD dwBitRate;\r
-       DWORD dwBitErrorRate;\r
-       REFERENCE_TIME AvgTimePerFrame;\r
-       BITMAPINFOHEADER bmiHeader;\r
+    RECT rcSource;\r
+    RECT rcTarget;\r
+    DWORD dwBitRate;\r
+    DWORD dwBitErrorRate;\r
+    REFERENCE_TIME AvgTimePerFrame;\r
+    BITMAPINFOHEADER bmiHeader;\r
 } VIDEOINFOHEADER;\r
 \r
 typedef struct _VIDEO_STREAM_CONFIG_CAPS\r
@@ -198,10 +198,10 @@ EXTERN_C const IID PIN_CATEGORY_PREVIEW;
 #define INTERFACE IGrabCallback\r
 DECLARE_INTERFACE_(IGrabCallback, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
-       STDMETHOD(Grab)(THIS_ ULONG,BYTE*) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(Grab)(THIS_ ULONG,BYTE*) PURE;\r
 };\r
 #undef INTERFACE\r
 \r
@@ -215,18 +215,18 @@ DECLARE_INTERFACE_(IGrabCallback, IUnknown)
 #define INTERFACE IAMCopyCaptureFileProgress\r
 DECLARE_INTERFACE_(IAMCopyCaptureFileProgress, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
-       STDMETHOD(Progress)(THIS_ int) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(Progress)(THIS_ int) PURE;\r
 };\r
 #undef INTERFACE\r
 #define INTERFACE IReferenceClock\r
 DECLARE_INTERFACE_(IReferenceClock, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(GetTime)(THIS_ REFERENCE_TIME *) PURE;\r
     STDMETHOD(AdviseTime)(THIS_ REFERENCE_TIME, REFERENCE_TIME, HEVENT, DWORD_PTR *) PURE;\r
     STDMETHOD(AdvisePeriodic)(THIS_ REFERENCE_TIME, REFERENCE_TIME, HSEMAPHORE, DWORD_PTR *) PURE;\r
@@ -236,9 +236,9 @@ DECLARE_INTERFACE_(IReferenceClock, IUnknown)
 #define INTERFACE IEnumFilters\r
 DECLARE_INTERFACE_(IEnumFilters, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(Next)(THIS_ ULONG, IBaseFilter **, ULONG *) PURE;\r
     STDMETHOD(Skip)(THIS_ ULONG) PURE;\r
     STDMETHOD(Reset)(THIS) PURE;\r
@@ -248,9 +248,9 @@ DECLARE_INTERFACE_(IEnumFilters, IUnknown)
 #define INTERFACE IEnumMediaTypes\r
 DECLARE_INTERFACE_(IEnumMediaTypes, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(Next)(THIS_ ULONG, AM_MEDIA_TYPE **, ULONG *) PURE;\r
     STDMETHOD(Skip)(THIS_ ULONG) PURE;\r
     STDMETHOD(Reset)(THIS) PURE;\r
@@ -260,9 +260,9 @@ DECLARE_INTERFACE_(IEnumMediaTypes, IUnknown)
 #define INTERFACE IPin\r
 DECLARE_INTERFACE_(IPin, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(Connect)(THIS_ IPin *, const AM_MEDIA_TYPE *) PURE;\r
     STDMETHOD(ReceiveConnection)(THIS_ IPin *, const AM_MEDIA_TYPE *) PURE;\r
     STDMETHOD(Disconnect)(THIS) PURE;\r
@@ -283,9 +283,9 @@ DECLARE_INTERFACE_(IPin, IUnknown)
 #define INTERFACE IEnumPins\r
 DECLARE_INTERFACE_(IEnumPins, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(Next)(THIS_ ULONG, IPin **, ULONG *) PURE;\r
     STDMETHOD(Skip)(THIS_ ULONG) PURE;\r
     STDMETHOD(Reset)(THIS) PURE;\r
@@ -295,10 +295,10 @@ DECLARE_INTERFACE_(IEnumPins, IUnknown)
 #define INTERFACE IMediaFilter\r
 DECLARE_INTERFACE_(IMediaFilter, IPersist)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
-       STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;\r
     STDMETHOD(Stop)(THIS) PURE;\r
     STDMETHOD(Pause)(THIS) PURE;\r
     STDMETHOD(Run)(THIS_ REFERENCE_TIME) PURE;\r
@@ -313,10 +313,10 @@ _COM_interface IBaseFilter { CONST_VTABLE struct IBaseFilterVtbl *lpVtbl; };
 typedef CONST_VTABLE struct IBaseFilterVtbl IBaseFilterVtbl;\r
 CONST_VTABLE struct IBaseFilterVtbl\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
-       STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;\r
     STDMETHOD(Stop)(THIS) PURE;\r
     STDMETHOD(Pause)(THIS) PURE;\r
     STDMETHOD(Run)(THIS_ REFERENCE_TIME) PURE;\r
@@ -336,9 +336,9 @@ _COM_interface IFilterGraph { CONST_VTABLE struct IFilterGraphVtbl *lpVtbl; };
 typedef CONST_VTABLE struct IFilterGraphVtbl IFilterGraphVtbl;\r
 CONST_VTABLE struct IFilterGraphVtbl\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(AddFilter)(THIS_ IBaseFilter *, LPCWSTR) PURE;\r
     STDMETHOD(RemoveFilter)(THIS_ IBaseFilter *) PURE;\r
     STDMETHOD(EnumFilters)(THIS_ IEnumFilters **) PURE;\r
@@ -352,9 +352,9 @@ CONST_VTABLE struct IFilterGraphVtbl
 #define INTERFACE IGraphBuilder\r
 DECLARE_INTERFACE_(IGraphBuilder ,IFilterGraph)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(AddFilter)(THIS_ IBaseFilter *, LPCWSTR) PURE;\r
     STDMETHOD(RemoveFilter)(THIS_ IBaseFilter *) PURE;\r
     STDMETHOD(EnumFilters)(THIS_ IEnumFilters **) PURE;\r
@@ -363,7 +363,7 @@ DECLARE_INTERFACE_(IGraphBuilder ,IFilterGraph)
     STDMETHOD(Reconnect)(THIS_ IPin *) PURE;\r
     STDMETHOD(Disconnect)(THIS_ IPin *) PURE;\r
     STDMETHOD(SetDefaultSyncSource)(THIS) PURE;\r
-       STDMETHOD(Connect)(THIS_ IPin *, IPin *) PURE;\r
+    STDMETHOD(Connect)(THIS_ IPin *, IPin *) PURE;\r
     STDMETHOD(Render)(THIS_ IPin *) PURE;\r
     STDMETHOD(RenderFile)(THIS_ LPCWSTR, LPCWSTR) PURE;\r
     STDMETHOD(AddSourceFilter)(THIS_ LPCWSTR, LPCWSTR, IBaseFilter **) PURE;\r
@@ -375,18 +375,18 @@ DECLARE_INTERFACE_(IGraphBuilder ,IFilterGraph)
 #define INTERFACE ICreateDevEnum\r
 DECLARE_INTERFACE_(ICreateDevEnum, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(CreateClassEnumerator)(THIS_ REFCLSID, IEnumMoniker **, DWORD) PURE;\r
 };\r
 #undef INTERFACE\r
 #define INTERFACE IMediaSample\r
 DECLARE_INTERFACE_(IMediaSample, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(GetPointer)(THIS_ BYTE **) PURE;\r
     STDMETHOD_(long, GetSize)(THIS) PURE;\r
     STDMETHOD(GetTime)(THIS_ REFERENCE_TIME *, REFERENCE_TIME *) PURE;\r
@@ -408,9 +408,9 @@ DECLARE_INTERFACE_(IMediaSample, IUnknown)
 #define INTERFACE IMemAllocator\r
 DECLARE_INTERFACE_(IMemAllocator, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(SetProperties)(THIS_ ALLOCATOR_PROPERTIES *, ALLOCATOR_PROPERTIES *) PURE;\r
     STDMETHOD(GetProperties)(THIS_ ALLOCATOR_PROPERTIES *) PURE;\r
     STDMETHOD(Commit)(THIS) PURE;\r
@@ -423,10 +423,10 @@ DECLARE_INTERFACE_(IMemAllocator, IUnknown)
 #define INTERFACE IMemInputPin\r
 DECLARE_INTERFACE_(IMemInputPin, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
-       STDMETHOD(GetAllocator)(THIS_ IMemAllocator **) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(GetAllocator)(THIS_ IMemAllocator **) PURE;\r
     STDMETHOD(NotifyAllocator)(THIS_ IMemAllocator *, BOOL) PURE;\r
     STDMETHOD(GetAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES *) PURE;\r
     STDMETHOD(Receive)(THIS_ IMediaSample *) PURE;\r
@@ -437,9 +437,9 @@ DECLARE_INTERFACE_(IMemInputPin, IUnknown)
 #define INTERFACE IFileSinkFilter\r
 DECLARE_INTERFACE_(IFileSinkFilter, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(SetFileName)(THIS_ LPCOLESTR,const AM_MEDIA_TYPE *) PURE;\r
     STDMETHOD(GetCurFile)(THIS_ LPOLESTR *,AM_MEDIA_TYPE*) PURE;\r
 };\r
@@ -447,9 +447,9 @@ DECLARE_INTERFACE_(IFileSinkFilter, IUnknown)
 #define INTERFACE ICaptureGraphBuilder2\r
 DECLARE_INTERFACE_(ICaptureGraphBuilder2, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(SetFiltergraph)(THIS_ IGraphBuilder*) PURE;\r
     STDMETHOD(GetFiltergraph)(THIS_ IGraphBuilder**) PURE;\r
     STDMETHOD(SetOutputFileName)(THIS_ const GUID*,LPCOLESTR,IBaseFilter**,IFileSinkFilter**) PURE;\r
@@ -464,9 +464,9 @@ DECLARE_INTERFACE_(ICaptureGraphBuilder2, IUnknown)
 #define INTERFACE IAMStreamConfig\r
 DECLARE_INTERFACE_(IAMStreamConfig, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
     STDMETHOD(SetFormat)(THIS_ AM_MEDIA_TYPE*) PURE;\r
     STDMETHOD(GetFormat)(THIS_ AM_MEDIA_TYPE**) PURE;\r
     STDMETHOD(GetNumberOfCapabilities)(THIS_ int*,int*) PURE;\r
@@ -476,456 +476,456 @@ DECLARE_INTERFACE_(IAMStreamConfig, IUnknown)
 #define INTERFACE IAMVideoProcAmp\r
 DECLARE_INTERFACE_(IAMVideoProcAmp, IUnknown)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
-       STDMETHOD(GetRange)(THIS_ long,long*,long*,long*,long*,long*) PURE;\r
-       STDMETHOD(Set)(THIS_ long,long,long) PURE;\r
-       STDMETHOD(Get)(THIS_ long,long*,long*) PURE;\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(GetRange)(THIS_ long,long*,long*,long*,long*,long*) PURE;\r
+    STDMETHOD(Set)(THIS_ long,long,long) PURE;\r
+    STDMETHOD(Get)(THIS_ long,long*,long*) PURE;\r
 };\r
 #undef INTERFACE\r
 #define INTERFACE IMediaControl\r
 DECLARE_INTERFACE_(IMediaControl, IDispatch)\r
 {\r
-       STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
-       STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
-       STDMETHOD_(ULONG,Release)(THIS) PURE;\r
-       STDMETHOD(GetTypeInfoCount)(THIS_ UINT*);\r
-       STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,ITypeInfo**);\r
-       STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*);\r
-       STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);\r
-       STDMETHOD(Run)(THIS);\r
-       STDMETHOD(Pause)(THIS);\r
-       STDMETHOD(Stop)(THIS);\r
-       STDMETHOD(GetState)(THIS_ LONG, OAFilterState*);\r
-       STDMETHOD(RenderFile)(THIS_ BSTR);\r
-       STDMETHOD(AddSourceFilter)(THIS_ BSTR,IDispatch**);\r
-       STDMETHOD(get_FilterCollection)(THIS_ IDispatch**);\r
-       STDMETHOD(get_RegFilterCollection)(THIS_ IDispatch**);\r
-       STDMETHOD(StopWhenReady)(THIS);\r
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;\r
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;\r
+    STDMETHOD_(ULONG,Release)(THIS) PURE;\r
+    STDMETHOD(GetTypeInfoCount)(THIS_ UINT*);\r
+    STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,ITypeInfo**);\r
+    STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*);\r
+    STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);\r
+    STDMETHOD(Run)(THIS);\r
+    STDMETHOD(Pause)(THIS);\r
+    STDMETHOD(Stop)(THIS);\r
+    STDMETHOD(GetState)(THIS_ LONG, OAFilterState*);\r
+    STDMETHOD(RenderFile)(THIS_ BSTR);\r
+    STDMETHOD(AddSourceFilter)(THIS_ BSTR,IDispatch**);\r
+    STDMETHOD(get_FilterCollection)(THIS_ IDispatch**);\r
+    STDMETHOD(get_RegFilterCollection)(THIS_ IDispatch**);\r
+    STDMETHOD(StopWhenReady)(THIS);\r
 };\r
 #undef INTERFACE\r
 \r
 #ifdef COBJMACROS\r
-#define ICreateDevEnum_QueryInterface(This,riid,ppvObject)     \\r
+#define ICreateDevEnum_QueryInterface(This,riid,ppvObject)  \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define ICreateDevEnum_AddRef(This)    \\r
+#define ICreateDevEnum_AddRef(This) \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define ICreateDevEnum_Release(This)   \\r
+#define ICreateDevEnum_Release(This)    \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)      \\r
+#define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)   \\r
     ( (This)->lpVtbl -> CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IPin_QueryInterface(This,riid,ppvObject)       \\r
+#define IPin_QueryInterface(This,riid,ppvObject)    \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IPin_AddRef(This)      \\r
+#define IPin_AddRef(This)   \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IPin_Release(This)     \\r
+#define IPin_Release(This)  \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IPin_Connect(This,pReceivePin,pmt)     \\r
+#define IPin_Connect(This,pReceivePin,pmt)  \\r
     ( (This)->lpVtbl -> Connect(This,pReceivePin,pmt) )\r
-#define IPin_ReceiveConnection(This,pConnector,pmt)    \\r
+#define IPin_ReceiveConnection(This,pConnector,pmt) \\r
     ( (This)->lpVtbl -> ReceiveConnection(This,pConnector,pmt) )\r
-#define IPin_Disconnect(This)  \\r
+#define IPin_Disconnect(This)   \\r
     ( (This)->lpVtbl -> Disconnect(This) )\r
-#define IPin_ConnectedTo(This,pPin)    \\r
+#define IPin_ConnectedTo(This,pPin) \\r
     ( (This)->lpVtbl -> ConnectedTo(This,pPin) )\r
-#define IPin_ConnectionMediaType(This,pmt)     \\r
+#define IPin_ConnectionMediaType(This,pmt)  \\r
     ( (This)->lpVtbl -> ConnectionMediaType(This,pmt) )\r
-#define IPin_QueryPinInfo(This,pInfo)  \\r
+#define IPin_QueryPinInfo(This,pInfo)   \\r
     ( (This)->lpVtbl -> QueryPinInfo(This,pInfo) )\r
-#define IPin_QueryDirection(This,pPinDir)      \\r
+#define IPin_QueryDirection(This,pPinDir)   \\r
     ( (This)->lpVtbl -> QueryDirection(This,pPinDir) )\r
-#define IPin_QueryId(This,Id)  \\r
+#define IPin_QueryId(This,Id)   \\r
     ( (This)->lpVtbl -> QueryId(This,Id) )\r
-#define IPin_QueryAccept(This,pmt)     \\r
+#define IPin_QueryAccept(This,pmt)  \\r
     ( (This)->lpVtbl -> QueryAccept(This,pmt) )\r
-#define IPin_EnumMediaTypes(This,ppEnum)       \\r
+#define IPin_EnumMediaTypes(This,ppEnum)    \\r
     ( (This)->lpVtbl -> EnumMediaTypes(This,ppEnum) )\r
-#define IPin_QueryInternalConnections(This,apPin,nPin) \\r
+#define IPin_QueryInternalConnections(This,apPin,nPin)  \\r
     ( (This)->lpVtbl -> QueryInternalConnections(This,apPin,nPin) )\r
-#define IPin_EndOfStream(This) \\r
+#define IPin_EndOfStream(This)  \\r
     ( (This)->lpVtbl -> EndOfStream(This) )\r
-#define IPin_BeginFlush(This)  \\r
+#define IPin_BeginFlush(This)   \\r
     ( (This)->lpVtbl -> BeginFlush(This) )\r
-#define IPin_EndFlush(This)    \\r
+#define IPin_EndFlush(This) \\r
     ( (This)->lpVtbl -> EndFlush(This) )\r
-#define IPin_NewSegment(This,tStart,tStop,dRate)       \\r
+#define IPin_NewSegment(This,tStart,tStop,dRate)    \\r
     ( (This)->lpVtbl -> NewSegment(This,tStart,tStop,dRate) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IEnumPins_QueryInterface(This,riid,ppvObject)  \\r
+#define IEnumPins_QueryInterface(This,riid,ppvObject)   \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IEnumPins_AddRef(This) \\r
+#define IEnumPins_AddRef(This)  \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IEnumPins_Release(This)        \\r
+#define IEnumPins_Release(This) \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IEnumPins_Next(This,cPins,ppPins,pcFetched)    \\r
+#define IEnumPins_Next(This,cPins,ppPins,pcFetched) \\r
     ( (This)->lpVtbl -> Next(This,cPins,ppPins,pcFetched) )\r
-#define IEnumPins_Skip(This,cPins)     \\r
+#define IEnumPins_Skip(This,cPins)  \\r
     ( (This)->lpVtbl -> Skip(This,cPins) )\r
-#define IEnumPins_Reset(This)  \\r
+#define IEnumPins_Reset(This)   \\r
     ( (This)->lpVtbl -> Reset(This) )\r
-#define IEnumPins_Clone(This,ppEnum)   \\r
+#define IEnumPins_Clone(This,ppEnum)    \\r
     ( (This)->lpVtbl -> Clone(This,ppEnum) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IAMStreamConfig_QueryInterface(This,riid,ppvObject)    \\r
+#define IAMStreamConfig_QueryInterface(This,riid,ppvObject) \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IAMStreamConfig_AddRef(This)   \\r
+#define IAMStreamConfig_AddRef(This)    \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IAMStreamConfig_Release(This)  \\r
+#define IAMStreamConfig_Release(This)   \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IAMStreamConfig_SetFormat(This,pmt)    \\r
+#define IAMStreamConfig_SetFormat(This,pmt) \\r
     ( (This)->lpVtbl -> SetFormat(This,pmt) )\r
-#define IAMStreamConfig_GetFormat(This,ppmt)   \\r
+#define IAMStreamConfig_GetFormat(This,ppmt)    \\r
     ( (This)->lpVtbl -> GetFormat(This,ppmt) )\r
-#define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize)   \\r
+#define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize)    \\r
     ( (This)->lpVtbl -> GetNumberOfCapabilities(This,piCount,piSize) )\r
-#define IAMStreamConfig_GetStreamCaps(This,iIndex,ppmt,pSCC)   \\r
+#define IAMStreamConfig_GetStreamCaps(This,iIndex,ppmt,pSCC)    \\r
     ( (This)->lpVtbl -> GetStreamCaps(This,iIndex,ppmt,pSCC) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IFilterGraph_QueryInterface(This,riid,ppvObject)       \\r
+#define IFilterGraph_QueryInterface(This,riid,ppvObject)    \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IFilterGraph_AddRef(This)      \\r
+#define IFilterGraph_AddRef(This)   \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IFilterGraph_Release(This)     \\r
+#define IFilterGraph_Release(This)  \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IFilterGraph_AddFilter(This,pFilter,pName)     \\r
+#define IFilterGraph_AddFilter(This,pFilter,pName)  \\r
     ( (This)->lpVtbl -> AddFilter(This,pFilter,pName) )\r
-#define IFilterGraph_RemoveFilter(This,pFilter)        \\r
+#define IFilterGraph_RemoveFilter(This,pFilter) \\r
     ( (This)->lpVtbl -> RemoveFilter(This,pFilter) )\r
-#define IFilterGraph_EnumFilters(This,ppEnum)  \\r
+#define IFilterGraph_EnumFilters(This,ppEnum)   \\r
     ( (This)->lpVtbl -> EnumFilters(This,ppEnum) )\r
-#define IFilterGraph_FindFilterByName(This,pName,ppFilter)     \\r
+#define IFilterGraph_FindFilterByName(This,pName,ppFilter)  \\r
     ( (This)->lpVtbl -> FindFilterByName(This,pName,ppFilter) )\r
-#define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt)    \\r
+#define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) \\r
     ( (This)->lpVtbl -> ConnectDirect(This,ppinOut,ppinIn,pmt) )\r
-#define IFilterGraph_Reconnect(This,ppin)      \\r
+#define IFilterGraph_Reconnect(This,ppin)   \\r
     ( (This)->lpVtbl -> Reconnect(This,ppin) )\r
-#define IFilterGraph_Disconnect(This,ppin)     \\r
+#define IFilterGraph_Disconnect(This,ppin)  \\r
     ( (This)->lpVtbl -> Disconnect(This,ppin) )\r
-#define IFilterGraph_SetDefaultSyncSource(This)        \\r
+#define IFilterGraph_SetDefaultSyncSource(This) \\r
     ( (This)->lpVtbl -> SetDefaultSyncSource(This) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IMediaFilter_QueryInterface(This,riid,ppvObject)       \\r
+#define IMediaFilter_QueryInterface(This,riid,ppvObject)    \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IMediaFilter_AddRef(This)      \\r
+#define IMediaFilter_AddRef(This)   \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IMediaFilter_Release(This)     \\r
+#define IMediaFilter_Release(This)  \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IMediaFilter_GetClassID(This,pClassID) \\r
+#define IMediaFilter_GetClassID(This,pClassID)  \\r
     ( (This)->lpVtbl -> GetClassID(This,pClassID) )\r
-#define IMediaFilter_Stop(This)        \\r
+#define IMediaFilter_Stop(This) \\r
     ( (This)->lpVtbl -> Stop(This) )\r
-#define IMediaFilter_Pause(This)       \\r
+#define IMediaFilter_Pause(This)    \\r
     ( (This)->lpVtbl -> Pause(This) )\r
-#define IMediaFilter_Run(This,tStart)  \\r
+#define IMediaFilter_Run(This,tStart)   \\r
     ( (This)->lpVtbl -> Run(This,tStart) )\r
-#define IMediaFilter_GetState(This,dwMilliSecsTimeout,State)   \\r
+#define IMediaFilter_GetState(This,dwMilliSecsTimeout,State)    \\r
     ( (This)->lpVtbl -> GetState(This,dwMilliSecsTimeout,State) )\r
-#define IMediaFilter_SetSyncSource(This,pClock)        \\r
+#define IMediaFilter_SetSyncSource(This,pClock) \\r
     ( (This)->lpVtbl -> SetSyncSource(This,pClock) )\r
-#define IMediaFilter_GetSyncSource(This,pClock)        \\r
+#define IMediaFilter_GetSyncSource(This,pClock) \\r
     ( (This)->lpVtbl -> GetSyncSource(This,pClock) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IBaseFilter_QueryInterface(This,riid,ppvObject)        \\r
+#define IBaseFilter_QueryInterface(This,riid,ppvObject) \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IBaseFilter_AddRef(This)       \\r
+#define IBaseFilter_AddRef(This)    \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IBaseFilter_Release(This)      \\r
+#define IBaseFilter_Release(This)   \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IBaseFilter_GetClassID(This,pClassID)  \\r
+#define IBaseFilter_GetClassID(This,pClassID)   \\r
     ( (This)->lpVtbl -> GetClassID(This,pClassID) )\r
-#define IBaseFilter_Stop(This) \\r
+#define IBaseFilter_Stop(This)  \\r
     ( (This)->lpVtbl -> Stop(This) )\r
-#define IBaseFilter_Pause(This)        \\r
+#define IBaseFilter_Pause(This) \\r
     ( (This)->lpVtbl -> Pause(This) )\r
-#define IBaseFilter_Run(This,tStart)   \\r
+#define IBaseFilter_Run(This,tStart)    \\r
     ( (This)->lpVtbl -> Run(This,tStart) )\r
-#define IBaseFilter_GetState(This,dwMilliSecsTimeout,State)    \\r
+#define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) \\r
     ( (This)->lpVtbl -> GetState(This,dwMilliSecsTimeout,State) )\r
-#define IBaseFilter_SetSyncSource(This,pClock) \\r
+#define IBaseFilter_SetSyncSource(This,pClock)  \\r
     ( (This)->lpVtbl -> SetSyncSource(This,pClock) )\r
-#define IBaseFilter_GetSyncSource(This,pClock) \\r
+#define IBaseFilter_GetSyncSource(This,pClock)  \\r
     ( (This)->lpVtbl -> GetSyncSource(This,pClock) )\r
-#define IBaseFilter_EnumPins(This,ppEnum)      \\r
+#define IBaseFilter_EnumPins(This,ppEnum)   \\r
     ( (This)->lpVtbl -> EnumPins(This,ppEnum) )\r
-#define IBaseFilter_FindPin(This,Id,ppPin)     \\r
+#define IBaseFilter_FindPin(This,Id,ppPin)  \\r
     ( (This)->lpVtbl -> FindPin(This,Id,ppPin) )\r
-#define IBaseFilter_QueryFilterInfo(This,pInfo)        \\r
+#define IBaseFilter_QueryFilterInfo(This,pInfo) \\r
     ( (This)->lpVtbl -> QueryFilterInfo(This,pInfo) )\r
-#define IBaseFilter_JoinFilterGraph(This,pGraph,pName) \\r
+#define IBaseFilter_JoinFilterGraph(This,pGraph,pName)  \\r
     ( (This)->lpVtbl -> JoinFilterGraph(This,pGraph,pName) )\r
-#define IBaseFilter_QueryVendorInfo(This,pVendorInfo)  \\r
+#define IBaseFilter_QueryVendorInfo(This,pVendorInfo)   \\r
     ( (This)->lpVtbl -> QueryVendorInfo(This,pVendorInfo) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IMediaSample_QueryInterface(This,riid,ppvObject)       \\r
+#define IMediaSample_QueryInterface(This,riid,ppvObject)    \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IMediaSample_AddRef(This)      \\r
+#define IMediaSample_AddRef(This)   \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IMediaSample_Release(This)     \\r
+#define IMediaSample_Release(This)  \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IMediaSample_GetPointer(This,ppBuffer) \\r
+#define IMediaSample_GetPointer(This,ppBuffer)  \\r
     ( (This)->lpVtbl -> GetPointer(This,ppBuffer) )\r
-#define IMediaSample_GetSize(This)     \\r
-               ( (This)->lpVtbl -> GetSize(This) )\r
-#define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) \\r
+#define IMediaSample_GetSize(This)  \\r
+        ( (This)->lpVtbl -> GetSize(This) )\r
+#define IMediaSample_GetTime(This,pTimeStart,pTimeEnd)  \\r
     ( (This)->lpVtbl -> GetTime(This,pTimeStart,pTimeEnd) )\r
-#define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) \\r
+#define IMediaSample_SetTime(This,pTimeStart,pTimeEnd)  \\r
     ( (This)->lpVtbl -> SetTime(This,pTimeStart,pTimeEnd) )\r
-#define IMediaSample_IsSyncPoint(This) \\r
+#define IMediaSample_IsSyncPoint(This)  \\r
     ( (This)->lpVtbl -> IsSyncPoint(This) )\r
-#define IMediaSample_SetSyncPoint(This,bIsSyncPoint)   \\r
+#define IMediaSample_SetSyncPoint(This,bIsSyncPoint)    \\r
     ( (This)->lpVtbl -> SetSyncPoint(This,bIsSyncPoint) )\r
-#define IMediaSample_IsPreroll(This)   \\r
+#define IMediaSample_IsPreroll(This)    \\r
     ( (This)->lpVtbl -> IsPreroll(This) )\r
-#define IMediaSample_SetPreroll(This,bIsPreroll)       \\r
+#define IMediaSample_SetPreroll(This,bIsPreroll)    \\r
     ( (This)->lpVtbl -> SetPreroll(This,bIsPreroll) )\r
-#define IMediaSample_GetActualDataLength(This) \\r
+#define IMediaSample_GetActualDataLength(This)  \\r
     ( (This)->lpVtbl -> GetActualDataLength(This) )\r
-#define IMediaSample_SetActualDataLength(This,length)  \\r
+#define IMediaSample_SetActualDataLength(This,length)   \\r
     ( (This)->lpVtbl -> SetActualDataLength(This,length) )\r
-#define IMediaSample_GetMediaType(This,ppMediaType)    \\r
+#define IMediaSample_GetMediaType(This,ppMediaType) \\r
     ( (This)->lpVtbl -> GetMediaType(This,ppMediaType) )\r
-#define IMediaSample_SetMediaType(This,pMediaType)     \\r
+#define IMediaSample_SetMediaType(This,pMediaType)  \\r
     ( (This)->lpVtbl -> SetMediaType(This,pMediaType) )\r
-#define IMediaSample_IsDiscontinuity(This)     \\r
+#define IMediaSample_IsDiscontinuity(This)  \\r
     ( (This)->lpVtbl -> IsDiscontinuity(This) )\r
-#define IMediaSample_SetDiscontinuity(This,bDiscontinuity)     \\r
+#define IMediaSample_SetDiscontinuity(This,bDiscontinuity)  \\r
     ( (This)->lpVtbl -> SetDiscontinuity(This,bDiscontinuity) )\r
-#define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd)    \\r
+#define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) \\r
     ( (This)->lpVtbl -> GetMediaTime(This,pTimeStart,pTimeEnd) )\r
-#define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd)    \\r
+#define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) \\r
     ( (This)->lpVtbl -> SetMediaTime(This,pTimeStart,pTimeEnd) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IEnumFilters_QueryInterface(This,riid,ppvObject)       \\r
+#define IEnumFilters_QueryInterface(This,riid,ppvObject)    \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IEnumFilters_AddRef(This)      \\r
+#define IEnumFilters_AddRef(This)   \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IEnumFilters_Release(This)     \\r
+#define IEnumFilters_Release(This)  \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched)    \\r
+#define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) \\r
     ( (This)->lpVtbl -> Next(This,cFilters,ppFilter,pcFetched) )\r
-#define IEnumFilters_Skip(This,cFilters)       \\r
+#define IEnumFilters_Skip(This,cFilters)    \\r
     ( (This)->lpVtbl -> Skip(This,cFilters) )\r
-#define IEnumFilters_Reset(This)       \\r
+#define IEnumFilters_Reset(This)    \\r
     ( (This)->lpVtbl -> Reset(This) )\r
-#define IEnumFilters_Clone(This,ppEnum)        \\r
+#define IEnumFilters_Clone(This,ppEnum) \\r
     ( (This)->lpVtbl -> Clone(This,ppEnum) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IMemAllocator_QueryInterface(This,riid,ppvObject)      \\r
+#define IMemAllocator_QueryInterface(This,riid,ppvObject)   \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IMemAllocator_AddRef(This)     \\r
+#define IMemAllocator_AddRef(This)  \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IMemAllocator_Release(This)    \\r
+#define IMemAllocator_Release(This) \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IMemAllocator_SetProperties(This,pRequest,pActual)     \\r
+#define IMemAllocator_SetProperties(This,pRequest,pActual)  \\r
     ( (This)->lpVtbl -> SetProperties(This,pRequest,pActual) )\r
-#define IMemAllocator_GetProperties(This,pProps)       \\r
+#define IMemAllocator_GetProperties(This,pProps)    \\r
     ( (This)->lpVtbl -> GetProperties(This,pProps) )\r
-#define IMemAllocator_Commit(This)     \\r
+#define IMemAllocator_Commit(This)  \\r
     ( (This)->lpVtbl -> Commit(This) )\r
-#define IMemAllocator_Decommit(This)   \\r
+#define IMemAllocator_Decommit(This)    \\r
     ( (This)->lpVtbl -> Decommit(This) )\r
-#define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)     \\r
+#define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)  \\r
     ( (This)->lpVtbl -> GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) )\r
-#define IMemAllocator_ReleaseBuffer(This,pBuffer)      \\r
+#define IMemAllocator_ReleaseBuffer(This,pBuffer)   \\r
     ( (This)->lpVtbl -> ReleaseBuffer(This,pBuffer) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IMemInputPin_QueryInterface(This,riid,ppvObject)       \\r
+#define IMemInputPin_QueryInterface(This,riid,ppvObject)    \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IMemInputPin_AddRef(This)      \\r
+#define IMemInputPin_AddRef(This)   \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IMemInputPin_Release(This)     \\r
+#define IMemInputPin_Release(This)  \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IMemInputPin_GetAllocator(This,ppAllocator)    \\r
+#define IMemInputPin_GetAllocator(This,ppAllocator) \\r
     ( (This)->lpVtbl -> GetAllocator(This,ppAllocator) )\r
-#define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly)        \\r
+#define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) \\r
     ( (This)->lpVtbl -> NotifyAllocator(This,pAllocator,bReadOnly) )\r
-#define IMemInputPin_GetAllocatorRequirements(This,pProps)     \\r
+#define IMemInputPin_GetAllocatorRequirements(This,pProps)  \\r
     ( (This)->lpVtbl -> GetAllocatorRequirements(This,pProps) )\r
-#define IMemInputPin_Receive(This,pSample)     \\r
+#define IMemInputPin_Receive(This,pSample)  \\r
     ( (This)->lpVtbl -> Receive(This,pSample) )\r
-#define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) \\r
+#define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)  \\r
     ( (This)->lpVtbl -> ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) )\r
-#define IMemInputPin_ReceiveCanBlock(This)     \\r
+#define IMemInputPin_ReceiveCanBlock(This)  \\r
     ( (This)->lpVtbl -> ReceiveCanBlock(This) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IGraphBuilder_QueryInterface(This,riid,ppvObject)      \\r
+#define IGraphBuilder_QueryInterface(This,riid,ppvObject)   \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IGraphBuilder_AddRef(This)     \\r
+#define IGraphBuilder_AddRef(This)  \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IGraphBuilder_Release(This)    \\r
+#define IGraphBuilder_Release(This) \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IGraphBuilder_AddFilter(This,pFilter,pName)    \\r
+#define IGraphBuilder_AddFilter(This,pFilter,pName) \\r
     ( (This)->lpVtbl -> AddFilter(This,pFilter,pName) )\r
-#define IGraphBuilder_RemoveFilter(This,pFilter)       \\r
+#define IGraphBuilder_RemoveFilter(This,pFilter)    \\r
     ( (This)->lpVtbl -> RemoveFilter(This,pFilter) )\r
-#define IGraphBuilder_EnumFilters(This,ppEnum) \\r
+#define IGraphBuilder_EnumFilters(This,ppEnum)  \\r
     ( (This)->lpVtbl -> EnumFilters(This,ppEnum) )\r
-#define IGraphBuilder_FindFilterByName(This,pName,ppFilter)    \\r
+#define IGraphBuilder_FindFilterByName(This,pName,ppFilter) \\r
     ( (This)->lpVtbl -> FindFilterByName(This,pName,ppFilter) )\r
-#define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt)   \\r
+#define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt)    \\r
     ( (This)->lpVtbl -> ConnectDirect(This,ppinOut,ppinIn,pmt) )\r
-#define IGraphBuilder_Reconnect(This,ppin)     \\r
+#define IGraphBuilder_Reconnect(This,ppin)  \\r
     ( (This)->lpVtbl -> Reconnect(This,ppin) )\r
-#define IGraphBuilder_Disconnect(This,ppin)    \\r
+#define IGraphBuilder_Disconnect(This,ppin) \\r
     ( (This)->lpVtbl -> Disconnect(This,ppin) )\r
-#define IGraphBuilder_SetDefaultSyncSource(This)       \\r
+#define IGraphBuilder_SetDefaultSyncSource(This)    \\r
     ( (This)->lpVtbl -> SetDefaultSyncSource(This) )\r
-#define IGraphBuilder_Connect(This,ppinOut,ppinIn)     \\r
+#define IGraphBuilder_Connect(This,ppinOut,ppinIn)  \\r
     ( (This)->lpVtbl -> Connect(This,ppinOut,ppinIn) )\r
-#define IGraphBuilder_Render(This,ppinOut)     \\r
+#define IGraphBuilder_Render(This,ppinOut)  \\r
     ( (This)->lpVtbl -> Render(This,ppinOut) )\r
-#define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList)     \\r
+#define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList)  \\r
     ( (This)->lpVtbl -> RenderFile(This,lpcwstrFile,lpcwstrPlayList) )\r
-#define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) \\r
+#define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)  \\r
     ( (This)->lpVtbl -> AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) )\r
-#define IGraphBuilder_SetLogFile(This,hFile)   \\r
+#define IGraphBuilder_SetLogFile(This,hFile)    \\r
     ( (This)->lpVtbl -> SetLogFile(This,hFile) )\r
-#define IGraphBuilder_Abort(This)      \\r
+#define IGraphBuilder_Abort(This)   \\r
     ( (This)->lpVtbl -> Abort(This) )\r
-#define IGraphBuilder_ShouldOperationContinue(This)    \\r
+#define IGraphBuilder_ShouldOperationContinue(This) \\r
     ( (This)->lpVtbl -> ShouldOperationContinue(This) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IEnumMediaTypes_QueryInterface(This,riid,ppvObject)    \\r
+#define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IEnumMediaTypes_AddRef(This)   \\r
+#define IEnumMediaTypes_AddRef(This)    \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IEnumMediaTypes_Release(This)  \\r
+#define IEnumMediaTypes_Release(This)   \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched)  \\r
+#define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched)   \\r
     ( (This)->lpVtbl -> Next(This,cMediaTypes,ppMediaTypes,pcFetched) )\r
-#define IEnumMediaTypes_Skip(This,cMediaTypes) \\r
+#define IEnumMediaTypes_Skip(This,cMediaTypes)  \\r
     ( (This)->lpVtbl -> Skip(This,cMediaTypes) )\r
-#define IEnumMediaTypes_Reset(This)    \\r
+#define IEnumMediaTypes_Reset(This) \\r
     ( (This)->lpVtbl -> Reset(This) )\r
-#define IEnumMediaTypes_Clone(This,ppEnum)     \\r
+#define IEnumMediaTypes_Clone(This,ppEnum)  \\r
     ( (This)->lpVtbl -> Clone(This,ppEnum) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IMediaControl_QueryInterface(This,riid,ppvObject)      \\r
+#define IMediaControl_QueryInterface(This,riid,ppvObject)   \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IMediaControl_AddRef(This)     \\r
+#define IMediaControl_AddRef(This)  \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IMediaControl_Release(This)    \\r
+#define IMediaControl_Release(This) \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IMediaControl_GetTypeInfoCount(This,pctinfo)   \\r
+#define IMediaControl_GetTypeInfoCount(This,pctinfo)    \\r
     ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )\r
-#define IMediaControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \\r
+#define IMediaControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \\r
     ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )\r
-#define IMediaControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)  \\r
+#define IMediaControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)   \\r
     ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )\r
-#define IMediaControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \\r
+#define IMediaControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \\r
     ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )\r
-#define IMediaControl_Run(This)        \\r
+#define IMediaControl_Run(This) \\r
     ( (This)->lpVtbl -> Run(This) )\r
-#define IMediaControl_Pause(This)      \\r
+#define IMediaControl_Pause(This)   \\r
     ( (This)->lpVtbl -> Pause(This) )\r
-#define IMediaControl_Stop(This)       \\r
+#define IMediaControl_Stop(This)    \\r
     ( (This)->lpVtbl -> Stop(This) )\r
-#define IMediaControl_GetState(This,msTimeout,pfs)     \\r
+#define IMediaControl_GetState(This,msTimeout,pfs)  \\r
     ( (This)->lpVtbl -> GetState(This,msTimeout,pfs) )\r
-#define IMediaControl_RenderFile(This,strFilename)     \\r
+#define IMediaControl_RenderFile(This,strFilename)  \\r
     ( (This)->lpVtbl -> RenderFile(This,strFilename) )\r
-#define IMediaControl_AddSourceFilter(This,strFilename,ppUnk)  \\r
+#define IMediaControl_AddSourceFilter(This,strFilename,ppUnk)   \\r
     ( (This)->lpVtbl -> AddSourceFilter(This,strFilename,ppUnk) )\r
-#define IMediaControl_get_FilterCollection(This,ppUnk) \\r
+#define IMediaControl_get_FilterCollection(This,ppUnk)  \\r
     ( (This)->lpVtbl -> get_FilterCollection(This,ppUnk) )\r
-#define IMediaControl_get_RegFilterCollection(This,ppUnk)      \\r
+#define IMediaControl_get_RegFilterCollection(This,ppUnk)   \\r
     ( (This)->lpVtbl -> get_RegFilterCollection(This,ppUnk) )\r
-#define IMediaControl_StopWhenReady(This)      \\r
+#define IMediaControl_StopWhenReady(This)   \\r
     ( (This)->lpVtbl -> StopWhenReady(This) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject)    \\r
+#define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IAMVideoProcAmp_AddRef(This)   \\r
+#define IAMVideoProcAmp_AddRef(This)    \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IAMVideoProcAmp_Release(This)  \\r
+#define IAMVideoProcAmp_Release(This)   \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)   \\r
+#define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)    \\r
     ( (This)->lpVtbl -> GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) )\r
-#define IAMVideoProcAmp_Set(This,Property,lValue,Flags)        \\r
+#define IAMVideoProcAmp_Set(This,Property,lValue,Flags) \\r
     ( (This)->lpVtbl -> Set(This,Property,lValue,Flags) )\r
-#define IAMVideoProcAmp_Get(This,Property,lValue,Flags)        \\r
+#define IAMVideoProcAmp_Get(This,Property,lValue,Flags) \\r
     ( (This)->lpVtbl -> Get(This,Property,lValue,Flags) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IFileSinkFilter_QueryInterface(This,riid,ppvObject)    \\r
+#define IFileSinkFilter_QueryInterface(This,riid,ppvObject) \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IFileSinkFilter_AddRef(This)   \\r
+#define IFileSinkFilter_AddRef(This)    \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IFileSinkFilter_Release(This)  \\r
+#define IFileSinkFilter_Release(This)   \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IFileSinkFilter_SetFileName(This,pszFileName,pmt)      \\r
+#define IFileSinkFilter_SetFileName(This,pszFileName,pmt)   \\r
     ( (This)->lpVtbl -> SetFileName(This,pszFileName,pmt) )\r
-#define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt)      \\r
+#define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt)   \\r
     ( (This)->lpVtbl -> GetCurFile(This,ppszFileName,pmt) )\r
 #endif /* COBJMACROS */\r
 \r
 #ifdef COBJMACROS\r
-#define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) \\r
+#define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject)  \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define IAMCopyCaptureFileProgress_AddRef(This)        \\r
+#define IAMCopyCaptureFileProgress_AddRef(This) \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define IAMCopyCaptureFileProgress_Release(This)       \\r
+#define IAMCopyCaptureFileProgress_Release(This)    \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define IAMCopyCaptureFileProgress_Progress(This,iProgress)    \\r
+#define IAMCopyCaptureFileProgress_Progress(This,iProgress) \\r
     ( (This)->lpVtbl -> Progress(This,iProgress) )\r
 #endif /* COBJMACROS */\r
 \r
 \r
 #ifdef COBJMACROS\r
-#define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject)      \\r
+#define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject)   \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
-#define ICaptureGraphBuilder2_AddRef(This)     \\r
+#define ICaptureGraphBuilder2_AddRef(This)  \\r
     ( (This)->lpVtbl -> AddRef(This) )\r
-#define ICaptureGraphBuilder2_Release(This)    \\r
+#define ICaptureGraphBuilder2_Release(This) \\r
     ( (This)->lpVtbl -> Release(This) )\r
-#define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) \\r
+#define ICaptureGraphBuilder2_SetFiltergraph(This,pfg)  \\r
     ( (This)->lpVtbl -> SetFiltergraph(This,pfg) )\r
-#define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg)        \\r
+#define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) \\r
     ( (This)->lpVtbl -> GetFiltergraph(This,ppfg) )\r
-#define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)       \\r
+#define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)    \\r
     ( (This)->lpVtbl -> SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) )\r
-#define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint)        \\r
+#define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) \\r
     ( (This)->lpVtbl -> FindInterface(This,pCategory,pType,pf,riid,ppint) )\r
-#define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)       \\r
+#define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)    \\r
     ( (This)->lpVtbl -> RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) )\r
-#define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)        \\r
+#define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) \\r
     ( (This)->lpVtbl -> ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) )\r
-#define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) \\r
+#define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize)  \\r
     ( (This)->lpVtbl -> AllocCapFile(This,lpstr,dwlSize) )\r
-#define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)       \\r
+#define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)    \\r
     ( (This)->lpVtbl -> CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) )\r
-#define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)      \\r
+#define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)   \\r
     ( (This)->lpVtbl -> FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) )\r
 #endif /* COBJMACROS */\r
 \r
index aeae0bd694dc9c282cd61d4631b5c98ea624c78d..b59035c0e057c65974e653fa5f5fdd5548debd0b 100644 (file)
@@ -55,95 +55,95 @@ typedef HRESULT (STDAPICALLTYPE *CallbackFn)(ULONG dwSize, BYTE *pBuffer);
 \r
 typedef struct HWCGrabCallback\r
 {\r
-       IGrabCallback IGrabCallback_iface;\r
-       long m_cRef;\r
+    IGrabCallback IGrabCallback_iface;\r
+    long m_cRef;\r
     CallbackFn m_pCallback;\r
     STDMETHODIMP (*SetCallback)(IGrabCallback *iface, CallbackFn pCallbackFn);\r
 } HWCGrabCallback;\r
 \r
 static inline HWCGrabCallback *impl_from_IGrabCallback(IGrabCallback *iface)\r
 {\r
-       return CONTAINING_RECORD(iface, HWCGrabCallback, IGrabCallback_iface);\r
+    return CONTAINING_RECORD(iface, HWCGrabCallback, IGrabCallback_iface);\r
 }\r
 \r
 static STDMETHODIMP HWCGrabCallback_QueryInterface(IGrabCallback *iface, REFIID riid, void **ppv)\r
 {\r
-       if (IsEqualIID(riid, &IID_IUnknown)) {\r
-               *ppv = (IUnknown*)iface;\r
-       } else if (IsEqualIID(riid, &IID_IGrabCallback)) {\r
-               *ppv = (IGrabCallback*)iface;\r
-       } else {\r
-               *ppv = NULL;\r
-               return E_NOINTERFACE;\r
-       }\r
+    if (IsEqualIID(riid, &IID_IUnknown)) {\r
+        *ppv = (IUnknown*)iface;\r
+    } else if (IsEqualIID(riid, &IID_IGrabCallback)) {\r
+        *ppv = (IGrabCallback*)iface;\r
+    } else {\r
+        *ppv = NULL;\r
+        return E_NOINTERFACE;\r
+    }\r
 \r
-       IGrabCallback_AddRef(iface);\r
-       return S_OK;\r
+    IGrabCallback_AddRef(iface);\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCGrabCallback_AddRef(IGrabCallback *iface)\r
 {\r
-       HWCGrabCallback *This = impl_from_IGrabCallback(iface);\r
+    HWCGrabCallback *This = impl_from_IGrabCallback(iface);\r
 \r
-       return InterlockedIncrement(&This->m_cRef);\r
+    return InterlockedIncrement(&This->m_cRef);\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCGrabCallback_Release(IGrabCallback *iface)\r
 {\r
-       HWCGrabCallback *This = impl_from_IGrabCallback(iface);\r
+    HWCGrabCallback *This = impl_from_IGrabCallback(iface);\r
 \r
-       if( InterlockedDecrement(&This->m_cRef) == 0)\r
-       {\r
-               This->m_pCallback = NULL;\r
-               g_free((void*)This);\r
-               return 0;\r
-       }\r
+    if( InterlockedDecrement(&This->m_cRef) == 0)\r
+    {\r
+        This->m_pCallback = NULL;\r
+        g_free((void*)This);\r
+        return 0;\r
+    }\r
 \r
-       return This->m_cRef;\r
+    return This->m_cRef;\r
 }\r
 \r
 static STDMETHODIMP HWCGrabCallback_Grab(IGrabCallback *iface, ULONG dwSize, BYTE *pBuffer)\r
 {\r
-       HWCGrabCallback *This = impl_from_IGrabCallback(iface);\r
+    HWCGrabCallback *This = impl_from_IGrabCallback(iface);\r
 \r
-       if (This->m_pCallback) {\r
-               This->m_pCallback(dwSize, pBuffer);\r
-               return S_OK;\r
-       }\r
+    if (This->m_pCallback) {\r
+        This->m_pCallback(dwSize, pBuffer);\r
+        return S_OK;\r
+    }\r
 \r
-       return E_FAIL;\r
+    return E_FAIL;\r
 }\r
 \r
 static STDMETHODIMP HWCGrabCallback_SetCallback(IGrabCallback *iface, CallbackFn pCallbackFn)\r
 {\r
-       HWCGrabCallback *This = impl_from_IGrabCallback(iface);\r
+    HWCGrabCallback *This = impl_from_IGrabCallback(iface);\r
 \r
-       This->m_pCallback = pCallbackFn;\r
-       return S_OK;\r
+    This->m_pCallback = pCallbackFn;\r
+    return S_OK;\r
 }\r
 \r
 static IGrabCallbackVtbl HWCGrabCallback_Vtbl =\r
 {\r
-               HWCGrabCallback_QueryInterface,\r
-               HWCGrabCallback_AddRef,\r
-               HWCGrabCallback_Release,\r
-               HWCGrabCallback_Grab\r
+        HWCGrabCallback_QueryInterface,\r
+        HWCGrabCallback_AddRef,\r
+        HWCGrabCallback_Release,\r
+        HWCGrabCallback_Grab\r
 };\r
 \r
 static STDMETHODIMP HWCGrabCallback_Construct(IGrabCallback **ppv)\r
 {\r
-       HWCGrabCallback *This = (HWCGrabCallback *)g_malloc0(sizeof(HWCGrabCallback));\r
+    HWCGrabCallback *This = (HWCGrabCallback *)g_malloc0(sizeof(HWCGrabCallback));\r
 \r
-       if (!This) {\r
-               return E_OUTOFMEMORY;\r
-       }\r
+    if (!This) {\r
+        return E_OUTOFMEMORY;\r
+    }\r
 \r
-       This->IGrabCallback_iface.lpVtbl = &HWCGrabCallback_Vtbl;\r
-       This->m_cRef = 1;\r
-       This->m_pCallback = NULL;\r
-       This->SetCallback = HWCGrabCallback_SetCallback;\r
-       *ppv = &This->IGrabCallback_iface;\r
-       return S_OK;\r
+    This->IGrabCallback_iface.lpVtbl = &HWCGrabCallback_Vtbl;\r
+    This->m_cRef = 1;\r
+    This->m_pCallback = NULL;\r
+    This->SetCallback = HWCGrabCallback_SetCallback;\r
+    *ppv = &This->IGrabCallback_iface;\r
+    return S_OK;\r
 }\r
 \r
 /*\r
@@ -152,414 +152,414 @@ static STDMETHODIMP HWCGrabCallback_Construct(IGrabCallback **ppv)
 \r
 typedef struct HWCInPin\r
 {\r
-       IPin IPin_iface;\r
-       IMemInputPin IMemInputPin_iface;\r
-       IBaseFilter *m_pCFilter;\r
-       IPin *m_pConnectedPin;\r
-       IGrabCallback *m_pCallback;\r
-       BOOL m_bReadOnly;\r
-       long m_cRef;\r
-       STDMETHODIMP (*SetGrabCallbackIF)(IPin *iface, IGrabCallback *pCaptureCB);\r
+    IPin IPin_iface;\r
+    IMemInputPin IMemInputPin_iface;\r
+    IBaseFilter *m_pCFilter;\r
+    IPin *m_pConnectedPin;\r
+    IGrabCallback *m_pCallback;\r
+    BOOL m_bReadOnly;\r
+    long m_cRef;\r
+    STDMETHODIMP (*SetGrabCallbackIF)(IPin *iface, IGrabCallback *pCaptureCB);\r
 } HWCInPin;\r
 \r
 static inline HWCInPin *impl_from_IPin(IPin *iface)\r
 {\r
-       return CONTAINING_RECORD(iface, HWCInPin, IPin_iface);\r
+    return CONTAINING_RECORD(iface, HWCInPin, IPin_iface);\r
 }\r
 \r
 static inline HWCInPin *impl_from_IMemInputPin(IMemInputPin *iface)\r
 {\r
-       return CONTAINING_RECORD(iface, HWCInPin, IMemInputPin_iface);\r
+    return CONTAINING_RECORD(iface, HWCInPin, IMemInputPin_iface);\r
 }\r
 \r
 static STDMETHODIMP HWCPin_QueryInterface(IPin *iface, REFIID riid, void **ppv)\r
 {\r
-       HWCInPin *This = impl_from_IPin(iface);\r
+    HWCInPin *This = impl_from_IPin(iface);\r
 \r
-       if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IPin)) {\r
-               *ppv = &This->IPin_iface;\r
-               IPin_AddRef((IPin*)*ppv);\r
-       } else if (IsEqualIID(riid, &IID_IMemInputPin)) {\r
-               *ppv = &This->IMemInputPin_iface;\r
-               IPin_AddRef((IMemInputPin*)*ppv);\r
-       } else {\r
-               *ppv = NULL;\r
-               return E_NOINTERFACE;\r
-       }\r
+    if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IPin)) {\r
+        *ppv = &This->IPin_iface;\r
+        IPin_AddRef((IPin*)*ppv);\r
+    } else if (IsEqualIID(riid, &IID_IMemInputPin)) {\r
+        *ppv = &This->IMemInputPin_iface;\r
+        IPin_AddRef((IMemInputPin*)*ppv);\r
+    } else {\r
+        *ppv = NULL;\r
+        return E_NOINTERFACE;\r
+    }\r
 \r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCPin_AddRef(IPin *iface)\r
 {\r
-       HWCInPin *This = impl_from_IPin(iface);\r
+    HWCInPin *This = impl_from_IPin(iface);\r
 \r
-       return InterlockedIncrement(&This->m_cRef);\r
+    return InterlockedIncrement(&This->m_cRef);\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCPin_Release(IPin *iface)\r
 {\r
-       HWCInPin *This = impl_from_IPin(iface);\r
-\r
-       if( InterlockedDecrement(&This->m_cRef) == 0)\r
-       {\r
-               if (This->m_pCFilter) {\r
-                       IBaseFilter_Release(This->m_pCFilter);\r
-                       This->m_pCFilter = NULL;\r
-               }\r
-               if (This->m_pCallback) {\r
-                       IGrabCallback_Release(This->m_pCallback);\r
-                       This->m_pCallback = NULL;\r
-               }\r
-               if (This->m_pConnectedPin) {\r
-                       IPin_Release(This->m_pConnectedPin);\r
-                       This->m_pConnectedPin = NULL;\r
-               }\r
-               g_free((void*)This);\r
-               return 0;\r
-       }\r
-       return This->m_cRef;\r
+    HWCInPin *This = impl_from_IPin(iface);\r
+\r
+    if( InterlockedDecrement(&This->m_cRef) == 0)\r
+    {\r
+        if (This->m_pCFilter) {\r
+            IBaseFilter_Release(This->m_pCFilter);\r
+            This->m_pCFilter = NULL;\r
+        }\r
+        if (This->m_pCallback) {\r
+            IGrabCallback_Release(This->m_pCallback);\r
+            This->m_pCallback = NULL;\r
+        }\r
+        if (This->m_pConnectedPin) {\r
+            IPin_Release(This->m_pConnectedPin);\r
+            This->m_pConnectedPin = NULL;\r
+        }\r
+        g_free((void*)This);\r
+        return 0;\r
+    }\r
+    return This->m_cRef;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_Connect(IPin *iface, IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)\r
 {\r
-       if ( !pmt )\r
-               return S_OK;\r
-       return S_FALSE;\r
+    if ( !pmt )\r
+        return S_OK;\r
+    return S_FALSE;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_ReceiveConnection(IPin *iface, IPin *pConnector, const AM_MEDIA_TYPE *pmt)\r
 {\r
-       HWCInPin *This = impl_from_IPin(iface);\r
+    HWCInPin *This = impl_from_IPin(iface);\r
 \r
-       if (pConnector == NULL || pmt == NULL)\r
-               return E_POINTER;\r
+    if (pConnector == NULL || pmt == NULL)\r
+        return E_POINTER;\r
 \r
-       if (This->m_pConnectedPin) {\r
-               return VFW_E_ALREADY_CONNECTED;\r
-       }\r
-       FILTER_STATE fs;\r
-       IBaseFilter_GetState(This->m_pCFilter, 0, &fs);\r
-       if (fs != State_Stopped) {\r
-               return VFW_E_NOT_STOPPED;\r
-       }\r
-       PIN_DIRECTION pd;\r
-       IPin_QueryDirection(pConnector, &pd);\r
-       if (pd == PINDIR_INPUT) {\r
-               return VFW_E_INVALID_DIRECTION;\r
-       }\r
+    if (This->m_pConnectedPin) {\r
+        return VFW_E_ALREADY_CONNECTED;\r
+    }\r
+    FILTER_STATE fs;\r
+    IBaseFilter_GetState(This->m_pCFilter, 0, &fs);\r
+    if (fs != State_Stopped) {\r
+        return VFW_E_NOT_STOPPED;\r
+    }\r
+    PIN_DIRECTION pd;\r
+    IPin_QueryDirection(pConnector, &pd);\r
+    if (pd == PINDIR_INPUT) {\r
+        return VFW_E_INVALID_DIRECTION;\r
+    }\r
 \r
-       This->m_pConnectedPin = pConnector;\r
-       IPin_AddRef(This->m_pConnectedPin);\r
-       return S_OK;\r
+    This->m_pConnectedPin = pConnector;\r
+    IPin_AddRef(This->m_pConnectedPin);\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_Disconnect(IPin *iface)\r
 {\r
-       HWCInPin *This = impl_from_IPin(iface);\r
+    HWCInPin *This = impl_from_IPin(iface);\r
 \r
-       HRESULT hr;\r
-       if (This->m_pConnectedPin == NULL) {\r
-               hr = S_FALSE;\r
-       } else {\r
-               IPin_Release(This->m_pConnectedPin);\r
-               This->m_pConnectedPin = NULL;\r
-               hr = S_OK;\r
-       }\r
-       return hr;\r
+    HRESULT hr;\r
+    if (This->m_pConnectedPin == NULL) {\r
+        hr = S_FALSE;\r
+    } else {\r
+        IPin_Release(This->m_pConnectedPin);\r
+        This->m_pConnectedPin = NULL;\r
+        hr = S_OK;\r
+    }\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_ConnectedTo(IPin *iface, IPin **pPin)\r
 {\r
-       HWCInPin *This = impl_from_IPin(iface);\r
+    HWCInPin *This = impl_from_IPin(iface);\r
 \r
-       if (pPin == NULL)\r
-               return E_POINTER;\r
+    if (pPin == NULL)\r
+        return E_POINTER;\r
 \r
-       if (This->m_pConnectedPin == NULL) {\r
-               return VFW_E_NOT_CONNECTED;\r
-       } else {\r
-               *pPin = This->m_pConnectedPin;\r
-               IPin_AddRef(This->m_pConnectedPin);\r
-       }\r
-       return S_OK;\r
+    if (This->m_pConnectedPin == NULL) {\r
+        return VFW_E_NOT_CONNECTED;\r
+    } else {\r
+        *pPin = This->m_pConnectedPin;\r
+        IPin_AddRef(This->m_pConnectedPin);\r
+    }\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_ConnectionMediaType(IPin *iface, AM_MEDIA_TYPE *pmt)\r
 {\r
-       if (pmt == NULL) {\r
-               return E_POINTER;\r
-       }\r
-       return VFW_E_NOT_CONNECTED;\r
+    if (pmt == NULL) {\r
+        return E_POINTER;\r
+    }\r
+    return VFW_E_NOT_CONNECTED;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_QueryPinInfo(IPin *iface, PIN_INFO *pInfo)\r
 {\r
-       HWCInPin *This = impl_from_IPin(iface);\r
+    HWCInPin *This = impl_from_IPin(iface);\r
 \r
-       if (pInfo == NULL)\r
-               return E_POINTER;\r
+    if (pInfo == NULL)\r
+        return E_POINTER;\r
 \r
-       pInfo->pFilter = This->m_pCFilter;\r
-       if (This->m_pCFilter) {\r
-               IBaseFilter_AddRef(This->m_pCFilter);\r
-       }\r
-       memcpy((void*)pInfo->achName, (void*)HWCPinName, sizeof(HWCPinName));\r
-       pInfo->dir = PINDIR_INPUT;\r
-       return S_OK;\r
+    pInfo->pFilter = This->m_pCFilter;\r
+    if (This->m_pCFilter) {\r
+        IBaseFilter_AddRef(This->m_pCFilter);\r
+    }\r
+    memcpy((void*)pInfo->achName, (void*)HWCPinName, sizeof(HWCPinName));\r
+    pInfo->dir = PINDIR_INPUT;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_QueryDirection(IPin *iface, PIN_DIRECTION *pPinDir)\r
 {\r
-       if (pPinDir == NULL)\r
-               return E_POINTER;\r
-       *pPinDir = PINDIR_INPUT;\r
-       return S_OK;\r
+    if (pPinDir == NULL)\r
+        return E_POINTER;\r
+    *pPinDir = PINDIR_INPUT;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_QueryId(IPin *iface, LPWSTR *Id)\r
 {\r
-       if (Id == NULL)\r
-               return E_POINTER;\r
-       PVOID pId = CoTaskMemAlloc(sizeof(HWCPinName));\r
-       memcpy((void*)pId, (void*)HWCPinName, sizeof(HWCPinName));\r
-       *Id = (LPWSTR)pId;\r
-       return S_OK;\r
+    if (Id == NULL)\r
+        return E_POINTER;\r
+    PVOID pId = CoTaskMemAlloc(sizeof(HWCPinName));\r
+    memcpy((void*)pId, (void*)HWCPinName, sizeof(HWCPinName));\r
+    *Id = (LPWSTR)pId;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_QueryAccept(IPin *iface, const AM_MEDIA_TYPE *pmt)\r
 {\r
-       if (pmt == NULL)\r
-               return E_POINTER;\r
-       return S_OK;\r
+    if (pmt == NULL)\r
+        return E_POINTER;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_EnumMediaTypes(IPin *iface, IEnumMediaTypes **ppEnum)\r
 {\r
-       if (ppEnum == NULL)\r
-                       return E_POINTER;\r
-       return E_NOTIMPL;\r
+    if (ppEnum == NULL)\r
+            return E_POINTER;\r
+    return E_NOTIMPL;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_QueryInternalConnections(IPin *iface, IPin **ppPin, ULONG *nPin)\r
 {\r
-       return E_NOTIMPL;\r
+    return E_NOTIMPL;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_EndOfStream(IPin *iface)\r
 {\r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_BeginFlush(IPin *iface)\r
 {\r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_EndFlush(IPin *iface)\r
 {\r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_NewSegment(IPin *iface, REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate)\r
 {\r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCMemInputPin_QueryInterface(IMemInputPin *iface, REFIID riid, void **ppv)\r
 {\r
-       HWCInPin *This = impl_from_IMemInputPin(iface);\r
+    HWCInPin *This = impl_from_IMemInputPin(iface);\r
 \r
-       if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IMemInputPin)) {\r
-               *ppv = &This->IMemInputPin_iface;\r
-               IMemInputPin_AddRef((IMemInputPin*)*ppv);\r
-       } else if (IsEqualIID(riid, &IID_IPin)) {\r
-               *ppv = &This->IPin_iface;\r
-               IPin_AddRef((IPin*)*ppv);\r
-       } else {\r
-               *ppv = NULL;\r
-               return E_NOINTERFACE;\r
-       }\r
+    if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IMemInputPin)) {\r
+        *ppv = &This->IMemInputPin_iface;\r
+        IMemInputPin_AddRef((IMemInputPin*)*ppv);\r
+    } else if (IsEqualIID(riid, &IID_IPin)) {\r
+        *ppv = &This->IPin_iface;\r
+        IPin_AddRef((IPin*)*ppv);\r
+    } else {\r
+        *ppv = NULL;\r
+        return E_NOINTERFACE;\r
+    }\r
 \r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCMemInputPin_AddRef(IMemInputPin *iface)\r
 {\r
-       HWCInPin *This = impl_from_IMemInputPin(iface);\r
+    HWCInPin *This = impl_from_IMemInputPin(iface);\r
 \r
-       return InterlockedIncrement(&This->m_cRef);\r
+    return InterlockedIncrement(&This->m_cRef);\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCMemInputPin_Release(IMemInputPin *iface)\r
 {\r
-       HWCInPin *This = impl_from_IMemInputPin(iface);\r
-\r
-       if( InterlockedDecrement(&This->m_cRef) == 0)\r
-       {\r
-               if (This->m_pCFilter) {\r
-                       IBaseFilter_Release(This->m_pCFilter);\r
-                       This->m_pCFilter = NULL;\r
-               }\r
-               if (This->m_pCallback) {\r
-                       IGrabCallback_Release(This->m_pCallback);\r
-                       This->m_pCallback = NULL;\r
-               }\r
-               if (This->m_pConnectedPin) {\r
-                       IPin_Release(This->m_pConnectedPin);\r
-                       This->m_pConnectedPin = NULL;\r
-               }\r
-               g_free((void*)This);\r
-               return 0;\r
-       }\r
-       return This->m_cRef;\r
+    HWCInPin *This = impl_from_IMemInputPin(iface);\r
+\r
+    if( InterlockedDecrement(&This->m_cRef) == 0)\r
+    {\r
+        if (This->m_pCFilter) {\r
+            IBaseFilter_Release(This->m_pCFilter);\r
+            This->m_pCFilter = NULL;\r
+        }\r
+        if (This->m_pCallback) {\r
+            IGrabCallback_Release(This->m_pCallback);\r
+            This->m_pCallback = NULL;\r
+        }\r
+        if (This->m_pConnectedPin) {\r
+            IPin_Release(This->m_pConnectedPin);\r
+            This->m_pConnectedPin = NULL;\r
+        }\r
+        g_free((void*)This);\r
+        return 0;\r
+    }\r
+    return This->m_cRef;\r
 }\r
 \r
 static STDMETHODIMP HWCMemInputPin_GetAllocator(IMemInputPin *iface, IMemAllocator **ppAllocator)\r
 {\r
-       if (ppAllocator == NULL)\r
-               return E_POINTER;\r
-       return VFW_E_NO_ALLOCATOR;\r
+    if (ppAllocator == NULL)\r
+        return E_POINTER;\r
+    return VFW_E_NO_ALLOCATOR;\r
 }\r
 \r
 static STDMETHODIMP HWCMemInputPin_NotifyAllocator(IMemInputPin *iface, IMemAllocator *pAllocator, BOOL bReadOnly)\r
 {\r
-       if (pAllocator == NULL)\r
-               return E_POINTER;\r
+    if (pAllocator == NULL)\r
+        return E_POINTER;\r
 \r
-       return NOERROR;\r
+    return NOERROR;\r
 }\r
 \r
 static STDMETHODIMP HWCMemInputPin_GetAllocatorRequirements(IMemInputPin *iface, ALLOCATOR_PROPERTIES *pProps)\r
 {\r
-       return E_NOTIMPL;\r
+    return E_NOTIMPL;\r
 }\r
 \r
 static STDMETHODIMP HWCMemInputPin_Receive(IMemInputPin *iface, IMediaSample *pSample)\r
 {\r
-       HWCInPin *This = impl_from_IMemInputPin(iface);\r
+    HWCInPin *This = impl_from_IMemInputPin(iface);\r
 \r
-       if (pSample == NULL)\r
-               return E_POINTER;\r
-       if (This->m_pCallback != NULL) {\r
-               HRESULT hr;\r
-               BYTE* pBuffer = NULL;\r
-               BYTE* pTmp_Buffer = NULL;       /* is this required? */\r
-               DWORD dwSize = 0;\r
-               dwSize = IMediaSample_GetSize(pSample);\r
-               hr = IMediaSample_GetPointer(pSample, &pBuffer);\r
-               if (FAILED(hr))\r
-                       return hr;\r
+    if (pSample == NULL)\r
+        return E_POINTER;\r
+    if (This->m_pCallback != NULL) {\r
+        HRESULT hr;\r
+        BYTE* pBuffer = NULL;\r
+        BYTE* pTmp_Buffer = NULL;   /* is this required? */\r
+        DWORD dwSize = 0;\r
+        dwSize = IMediaSample_GetSize(pSample);\r
+        hr = IMediaSample_GetPointer(pSample, &pBuffer);\r
+        if (FAILED(hr))\r
+            return hr;\r
 \r
-               pTmp_Buffer = (BYTE *)g_malloc0((size_t)dwSize);\r
-               if (!pTmp_Buffer)\r
-                       return E_OUTOFMEMORY;\r
-               memcpy((void*)pTmp_Buffer, (void*)pBuffer, (size_t)dwSize);\r
+        pTmp_Buffer = (BYTE *)g_malloc0((size_t)dwSize);\r
+        if (!pTmp_Buffer)\r
+            return E_OUTOFMEMORY;\r
+        memcpy((void*)pTmp_Buffer, (void*)pBuffer, (size_t)dwSize);\r
 \r
-               hr = IGrabCallback_Grab(This->m_pCallback, dwSize, pTmp_Buffer);\r
-               if (FAILED(hr))\r
-                       return hr;\r
-       }\r
-       return S_OK;\r
+        hr = IGrabCallback_Grab(This->m_pCallback, dwSize, pTmp_Buffer);\r
+        if (FAILED(hr))\r
+            return hr;\r
+    }\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCMemInputPin_ReceiveMultiple(IMemInputPin *iface, IMediaSample **pSamples, long nSamples, long *nSamplesProcessed)\r
 {\r
-       HRESULT hr = S_OK;\r
+    HRESULT hr = S_OK;\r
 \r
-       if (pSamples == NULL)\r
-               return E_POINTER;\r
+    if (pSamples == NULL)\r
+        return E_POINTER;\r
 \r
-       *nSamplesProcessed = 0;\r
+    *nSamplesProcessed = 0;\r
 \r
-       while (nSamples-- > 0)\r
-       {\r
-               hr = IMemInputPin_Receive(iface, pSamples[*nSamplesProcessed]);\r
-               if (hr != S_OK)\r
-                       break;\r
-               (*nSamplesProcessed)++;\r
-       }\r
-       return hr;\r
+    while (nSamples-- > 0)\r
+    {\r
+        hr = IMemInputPin_Receive(iface, pSamples[*nSamplesProcessed]);\r
+        if (hr != S_OK)\r
+            break;\r
+        (*nSamplesProcessed)++;\r
+    }\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP HWCMemInputPin_ReceiveCanBlock(IMemInputPin *iface)\r
 {\r
-       return S_FALSE;\r
+    return S_FALSE;\r
 }\r
 \r
 static STDMETHODIMP HWCPin_SetCallback(IPin *iface, IGrabCallback *pCaptureCB)\r
 {\r
-       HWCInPin *This = impl_from_IPin(iface);\r
+    HWCInPin *This = impl_from_IPin(iface);\r
 \r
-       if (pCaptureCB == NULL) {\r
-               IGrabCallback_Release(This->m_pCallback);\r
-               This->m_pCallback = NULL;\r
-       } else {\r
-               This->m_pCallback = pCaptureCB;\r
-               IGrabCallback_AddRef(This->m_pCallback);\r
-       }\r
+    if (pCaptureCB == NULL) {\r
+        IGrabCallback_Release(This->m_pCallback);\r
+        This->m_pCallback = NULL;\r
+    } else {\r
+        This->m_pCallback = pCaptureCB;\r
+        IGrabCallback_AddRef(This->m_pCallback);\r
+    }\r
 \r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 \r
 static IPinVtbl HWCPin_Vtbl =\r
 {\r
-       HWCPin_QueryInterface,\r
-       HWCPin_AddRef,\r
-       HWCPin_Release,\r
-       HWCPin_Connect,\r
-       HWCPin_ReceiveConnection,\r
-       HWCPin_Disconnect,\r
-       HWCPin_ConnectedTo,\r
-       HWCPin_ConnectionMediaType,\r
-       HWCPin_QueryPinInfo,\r
-       HWCPin_QueryDirection,\r
-       HWCPin_QueryId,\r
-       HWCPin_QueryAccept,\r
-       HWCPin_EnumMediaTypes,\r
-       HWCPin_QueryInternalConnections,\r
-       HWCPin_EndOfStream,\r
-       HWCPin_BeginFlush,\r
-       HWCPin_EndFlush,\r
-       HWCPin_NewSegment\r
+    HWCPin_QueryInterface,\r
+    HWCPin_AddRef,\r
+    HWCPin_Release,\r
+    HWCPin_Connect,\r
+    HWCPin_ReceiveConnection,\r
+    HWCPin_Disconnect,\r
+    HWCPin_ConnectedTo,\r
+    HWCPin_ConnectionMediaType,\r
+    HWCPin_QueryPinInfo,\r
+    HWCPin_QueryDirection,\r
+    HWCPin_QueryId,\r
+    HWCPin_QueryAccept,\r
+    HWCPin_EnumMediaTypes,\r
+    HWCPin_QueryInternalConnections,\r
+    HWCPin_EndOfStream,\r
+    HWCPin_BeginFlush,\r
+    HWCPin_EndFlush,\r
+    HWCPin_NewSegment\r
 };\r
 \r
 static IMemInputPinVtbl HWCMemInputPin_Vtbl =\r
 {\r
-       HWCMemInputPin_QueryInterface,\r
-       HWCMemInputPin_AddRef,\r
-       HWCMemInputPin_Release,\r
-       HWCMemInputPin_GetAllocator,\r
-       HWCMemInputPin_NotifyAllocator,\r
-       HWCMemInputPin_GetAllocatorRequirements,\r
-       HWCMemInputPin_Receive,\r
-       HWCMemInputPin_ReceiveMultiple,\r
-       HWCMemInputPin_ReceiveCanBlock\r
+    HWCMemInputPin_QueryInterface,\r
+    HWCMemInputPin_AddRef,\r
+    HWCMemInputPin_Release,\r
+    HWCMemInputPin_GetAllocator,\r
+    HWCMemInputPin_NotifyAllocator,\r
+    HWCMemInputPin_GetAllocatorRequirements,\r
+    HWCMemInputPin_Receive,\r
+    HWCMemInputPin_ReceiveMultiple,\r
+    HWCMemInputPin_ReceiveCanBlock\r
 };\r
 \r
 static STDMETHODIMP HWCInPin_Construct(IBaseFilter *pFilter, IPin **ppv)\r
 {\r
-       HWCInPin *This = (HWCInPin *)g_malloc0(sizeof(HWCInPin));\r
+    HWCInPin *This = (HWCInPin *)g_malloc0(sizeof(HWCInPin));\r
 \r
-       if (!This) {\r
-               return E_OUTOFMEMORY;\r
-       }\r
+    if (!This) {\r
+        return E_OUTOFMEMORY;\r
+    }\r
 \r
-       This->IPin_iface.lpVtbl = &HWCPin_Vtbl;\r
-       This->IMemInputPin_iface.lpVtbl = &HWCMemInputPin_Vtbl;\r
-       This->m_bReadOnly = FALSE;\r
-       This->m_pCFilter = pFilter;\r
-       if (This->m_pCFilter) {\r
-               IBaseFilter_AddRef(This->m_pCFilter);\r
-       }\r
-       This->m_pConnectedPin = NULL;\r
-       This->m_pCallback = NULL;\r
-       This->m_cRef = 1;\r
-       This->SetGrabCallbackIF = HWCPin_SetCallback;\r
-       *ppv = &This->IPin_iface;\r
+    This->IPin_iface.lpVtbl = &HWCPin_Vtbl;\r
+    This->IMemInputPin_iface.lpVtbl = &HWCMemInputPin_Vtbl;\r
+    This->m_bReadOnly = FALSE;\r
+    This->m_pCFilter = pFilter;\r
+    if (This->m_pCFilter) {\r
+        IBaseFilter_AddRef(This->m_pCFilter);\r
+    }\r
+    This->m_pConnectedPin = NULL;\r
+    This->m_pCallback = NULL;\r
+    This->m_cRef = 1;\r
+    This->SetGrabCallbackIF = HWCPin_SetCallback;\r
+    *ppv = &This->IPin_iface;\r
 \r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 /*\r
@@ -568,144 +568,144 @@ static STDMETHODIMP HWCInPin_Construct(IBaseFilter *pFilter, IPin **ppv)
 \r
 typedef struct HWCEnumPins\r
 {\r
-       IEnumPins IEnumPins_iface;\r
-       IBaseFilter *m_pFilter;\r
-       int m_nPos;\r
-       long m_cRef;\r
+    IEnumPins IEnumPins_iface;\r
+    IBaseFilter *m_pFilter;\r
+    int m_nPos;\r
+    long m_cRef;\r
 } HWCEnumPins;\r
 \r
 static inline HWCEnumPins *impl_from_IEnumPins(IEnumPins *iface)\r
 {\r
-       return CONTAINING_RECORD(iface, HWCEnumPins, IEnumPins_iface);\r
+    return CONTAINING_RECORD(iface, HWCEnumPins, IEnumPins_iface);\r
 }\r
 \r
 static STDMETHODIMP HWCEnumPins_QueryInterface(IEnumPins *iface, REFIID riid, void **ppv)\r
 {\r
-       if (ppv == NULL)\r
-               return E_POINTER;\r
+    if (ppv == NULL)\r
+        return E_POINTER;\r
 \r
-       if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IEnumPins)) {\r
-               *ppv = iface;\r
-       } else {\r
-               *ppv = NULL;\r
-               return E_NOINTERFACE;\r
-       }\r
+    if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IEnumPins)) {\r
+        *ppv = iface;\r
+    } else {\r
+        *ppv = NULL;\r
+        return E_NOINTERFACE;\r
+    }\r
 \r
-       IEnumPins_AddRef(iface);\r
-       return S_OK;\r
+    IEnumPins_AddRef(iface);\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCEnumPins_AddRef(IEnumPins *iface)\r
 {\r
-       HWCEnumPins *This = impl_from_IEnumPins(iface);\r
+    HWCEnumPins *This = impl_from_IEnumPins(iface);\r
 \r
-       return InterlockedIncrement(&This->m_cRef);\r
+    return InterlockedIncrement(&This->m_cRef);\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCEnumPins_Release(IEnumPins *iface)\r
 {\r
-       HWCEnumPins *This = impl_from_IEnumPins(iface);\r
+    HWCEnumPins *This = impl_from_IEnumPins(iface);\r
 \r
-       if (InterlockedDecrement(&This->m_cRef) == 0) {\r
-               if (This->m_pFilter) {\r
-                       IBaseFilter_Release(This->m_pFilter);\r
-                       This->m_pFilter = NULL;\r
-               }\r
-               This->m_nPos = 0;\r
-               g_free((void*)This);\r
-               return 0;\r
-       }\r
-       return This->m_cRef;\r
+    if (InterlockedDecrement(&This->m_cRef) == 0) {\r
+        if (This->m_pFilter) {\r
+            IBaseFilter_Release(This->m_pFilter);\r
+            This->m_pFilter = NULL;\r
+        }\r
+        This->m_nPos = 0;\r
+        g_free((void*)This);\r
+        return 0;\r
+    }\r
+    return This->m_cRef;\r
 }\r
 \r
 static STDMETHODIMP HWCEnumPins_Next(IEnumPins *iface, ULONG cPins, IPin **ppPins,\r
-                                                               ULONG *pcFetched)\r
+                                ULONG *pcFetched)\r
 {\r
-       HWCEnumPins *This = impl_from_IEnumPins(iface);\r
+    HWCEnumPins *This = impl_from_IEnumPins(iface);\r
 \r
-       if (ppPins == NULL)\r
-                       return E_POINTER;\r
+    if (ppPins == NULL)\r
+            return E_POINTER;\r
 \r
-       ULONG fetched;\r
-       if (This->m_nPos < 1 && cPins > 0) {\r
-               IPin *pPin;\r
-               IBaseFilter_FindPin(This->m_pFilter, HWCPinName, &pPin);\r
-               *ppPins = pPin;\r
-               IPin_AddRef(pPin);\r
-               fetched = 1;\r
-               This->m_nPos++;\r
-       } else {\r
-               fetched = 0;\r
-       }\r
+    ULONG fetched;\r
+    if (This->m_nPos < 1 && cPins > 0) {\r
+        IPin *pPin;\r
+        IBaseFilter_FindPin(This->m_pFilter, HWCPinName, &pPin);\r
+        *ppPins = pPin;\r
+        IPin_AddRef(pPin);\r
+        fetched = 1;\r
+        This->m_nPos++;\r
+    } else {\r
+        fetched = 0;\r
+    }\r
 \r
-       if (pcFetched != NULL ) {\r
-               *pcFetched = fetched;\r
-       }\r
+    if (pcFetched != NULL ) {\r
+        *pcFetched = fetched;\r
+    }\r
 \r
-       return ( fetched == cPins ) ? S_OK : S_FALSE;\r
+    return ( fetched == cPins ) ? S_OK : S_FALSE;\r
 }\r
 \r
 static STDMETHODIMP HWCEnumPins_Skip(IEnumPins *iface, ULONG cPins)\r
 {\r
-       HWCEnumPins *This = impl_from_IEnumPins(iface);\r
-       This->m_nPos += cPins;\r
-       return ( This->m_nPos >= 1 ) ? S_FALSE : S_OK;\r
+    HWCEnumPins *This = impl_from_IEnumPins(iface);\r
+    This->m_nPos += cPins;\r
+    return ( This->m_nPos >= 1 ) ? S_FALSE : S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCEnumPins_Reset(IEnumPins *iface)\r
 {\r
-       HWCEnumPins *This = impl_from_IEnumPins(iface);\r
-       This->m_nPos = 0;\r
-       return S_OK;\r
+    HWCEnumPins *This = impl_from_IEnumPins(iface);\r
+    This->m_nPos = 0;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCEnumPins_Construct(IBaseFilter *pFilter, int nPos, IEnumPins **ppv);\r
 \r
 static STDMETHODIMP HWCEnumPins_Clone(IEnumPins *iface, IEnumPins **ppEnum)\r
 {\r
-       HWCEnumPins *This = impl_from_IEnumPins(iface);\r
+    HWCEnumPins *This = impl_from_IEnumPins(iface);\r
 \r
-       if (ppEnum == NULL)\r
-               return E_POINTER;\r
+    if (ppEnum == NULL)\r
+        return E_POINTER;\r
 \r
-       HWCEnumPins_Construct(This->m_pFilter, This->m_nPos, ppEnum);\r
-       if (*ppEnum == NULL) {\r
-               return E_OUTOFMEMORY;\r
-       }\r
+    HWCEnumPins_Construct(This->m_pFilter, This->m_nPos, ppEnum);\r
+    if (*ppEnum == NULL) {\r
+        return E_OUTOFMEMORY;\r
+    }\r
 \r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 static IEnumPinsVtbl HWCEnumPins_Vtbl =\r
 {\r
-       HWCEnumPins_QueryInterface,\r
-       HWCEnumPins_AddRef,\r
-       HWCEnumPins_Release,\r
-       HWCEnumPins_Next,\r
-       HWCEnumPins_Skip,\r
-       HWCEnumPins_Reset,\r
-       HWCEnumPins_Clone\r
+    HWCEnumPins_QueryInterface,\r
+    HWCEnumPins_AddRef,\r
+    HWCEnumPins_Release,\r
+    HWCEnumPins_Next,\r
+    HWCEnumPins_Skip,\r
+    HWCEnumPins_Reset,\r
+    HWCEnumPins_Clone\r
 };\r
 \r
 \r
 static STDMETHODIMP HWCEnumPins_Construct(IBaseFilter *pFilter, int nPos, IEnumPins **ppv)\r
 {\r
-       HWCEnumPins *This = (HWCEnumPins *)g_malloc0(sizeof(HWCEnumPins));\r
+    HWCEnumPins *This = (HWCEnumPins *)g_malloc0(sizeof(HWCEnumPins));\r
 \r
-       if (!This) {\r
-               return E_OUTOFMEMORY;\r
-       }\r
+    if (!This) {\r
+        return E_OUTOFMEMORY;\r
+    }\r
 \r
-       This->IEnumPins_iface.lpVtbl = &HWCEnumPins_Vtbl;\r
-       This->m_pFilter = pFilter;\r
-       if (This->m_pFilter) {\r
-               IBaseFilter_AddRef(This->m_pFilter);\r
-       }\r
-       This->m_cRef = 1;\r
-       This->m_nPos = nPos;\r
-       *ppv = &This->IEnumPins_iface;\r
+    This->IEnumPins_iface.lpVtbl = &HWCEnumPins_Vtbl;\r
+    This->m_pFilter = pFilter;\r
+    if (This->m_pFilter) {\r
+        IBaseFilter_AddRef(This->m_pFilter);\r
+    }\r
+    This->m_cRef = 1;\r
+    This->m_nPos = nPos;\r
+    *ppv = &This->IEnumPins_iface;\r
 \r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 /*\r
@@ -714,216 +714,216 @@ static STDMETHODIMP HWCEnumPins_Construct(IBaseFilter *pFilter, int nPos, IEnumP
 \r
 typedef struct HWCFilter\r
 {\r
-       IBaseFilter IBaseFilter_iface;\r
-       IPin *m_pPin;\r
-       IFilterGraph *m_pFilterGraph;\r
-       FILTER_STATE m_state;\r
-       long m_cRef;\r
+    IBaseFilter IBaseFilter_iface;\r
+    IPin *m_pPin;\r
+    IFilterGraph *m_pFilterGraph;\r
+    FILTER_STATE m_state;\r
+    long m_cRef;\r
 } HWCFilter;\r
 \r
 static inline HWCFilter *impl_from_IBaseFilter(IBaseFilter *iface)\r
 {\r
-       return CONTAINING_RECORD(iface, HWCFilter, IBaseFilter_iface);\r
+    return CONTAINING_RECORD(iface, HWCFilter, IBaseFilter_iface);\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_QueryInterface(IBaseFilter *iface, REFIID riid, void **ppv)\r
 {\r
-       if(IsEqualIID(riid, &IID_IUnknown)) {\r
-               *ppv = (IUnknown*)iface;\r
-       } else if (IsEqualIID(riid, &IID_IPersist)) {\r
-               *ppv = (IPersist*)iface;\r
-       } else if (IsEqualIID(riid, &IID_IMediaFilter)) {\r
-               *ppv = (IMediaFilter*)iface;\r
-       } else if (IsEqualIID(riid, &IID_IBaseFilter)) {\r
-               *ppv = (IBaseFilter*)iface;\r
-       } else {\r
-               *ppv = NULL;\r
-               return E_NOINTERFACE;\r
-       }\r
+    if(IsEqualIID(riid, &IID_IUnknown)) {\r
+        *ppv = (IUnknown*)iface;\r
+    } else if (IsEqualIID(riid, &IID_IPersist)) {\r
+        *ppv = (IPersist*)iface;\r
+    } else if (IsEqualIID(riid, &IID_IMediaFilter)) {\r
+        *ppv = (IMediaFilter*)iface;\r
+    } else if (IsEqualIID(riid, &IID_IBaseFilter)) {\r
+        *ppv = (IBaseFilter*)iface;\r
+    } else {\r
+        *ppv = NULL;\r
+        return E_NOINTERFACE;\r
+    }\r
 \r
-       IBaseFilter_AddRef(iface);\r
-       return S_OK;\r
+    IBaseFilter_AddRef(iface);\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCFilter_AddRef(IBaseFilter *iface)\r
 {\r
-       HWCFilter *This = impl_from_IBaseFilter(iface);\r
+    HWCFilter *This = impl_from_IBaseFilter(iface);\r
 \r
-       return InterlockedIncrement(&This->m_cRef);\r
+    return InterlockedIncrement(&This->m_cRef);\r
 }\r
 \r
 static STDMETHODIMP_(ULONG) HWCFilter_Release(IBaseFilter *iface)\r
 {\r
-       HWCFilter *This = impl_from_IBaseFilter(iface);\r
+    HWCFilter *This = impl_from_IBaseFilter(iface);\r
 \r
-       if( InterlockedDecrement(&This->m_cRef) == 0) {\r
-               if (This->m_pPin) {\r
-                       IPin_Release(This->m_pPin);\r
-                       This->m_pPin = NULL;\r
-               }\r
-               if (This->m_pFilterGraph) {\r
-                       IFilterGraph_Release(This->m_pFilterGraph);\r
-                       This->m_pFilterGraph = NULL;\r
-               }\r
-               g_free((void*)This);\r
-               return 0;\r
-       }\r
-       return This->m_cRef;\r
+    if( InterlockedDecrement(&This->m_cRef) == 0) {\r
+        if (This->m_pPin) {\r
+            IPin_Release(This->m_pPin);\r
+            This->m_pPin = NULL;\r
+        }\r
+        if (This->m_pFilterGraph) {\r
+            IFilterGraph_Release(This->m_pFilterGraph);\r
+            This->m_pFilterGraph = NULL;\r
+        }\r
+        g_free((void*)This);\r
+        return 0;\r
+    }\r
+    return This->m_cRef;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_GetClassID(IBaseFilter *iface, CLSID *pClsID)\r
 {\r
-       if (pClsID == NULL)\r
-               return E_POINTER;\r
-       return E_NOTIMPL;\r
+    if (pClsID == NULL)\r
+        return E_POINTER;\r
+    return E_NOTIMPL;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_GetState(IBaseFilter *iface, DWORD dwMSecs, FILTER_STATE *State)\r
 {\r
-       HWCFilter *This = impl_from_IBaseFilter(iface);\r
-       *State = This->m_state;\r
-       return S_OK;\r
+    HWCFilter *This = impl_from_IBaseFilter(iface);\r
+    *State = This->m_state;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_SetSyncSource(IBaseFilter *iface, IReferenceClock *pClock)\r
 {\r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_GetSyncSource(IBaseFilter *iface, IReferenceClock **pClock)\r
 {\r
-       *pClock = NULL;\r
-       return S_OK;\r
+    *pClock = NULL;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_Stop(IBaseFilter *iface)\r
 {\r
-       HWCFilter *This = impl_from_IBaseFilter(iface);\r
+    HWCFilter *This = impl_from_IBaseFilter(iface);\r
 \r
-       IPin_EndFlush(This->m_pPin);\r
-       This->m_state = State_Stopped;\r
-       return S_OK;\r
+    IPin_EndFlush(This->m_pPin);\r
+    This->m_state = State_Stopped;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_Pause(IBaseFilter *iface)\r
 {\r
-       HWCFilter *This = impl_from_IBaseFilter(iface);\r
-       This->m_state = State_Paused;\r
-       return S_OK;\r
+    HWCFilter *This = impl_from_IBaseFilter(iface);\r
+    This->m_state = State_Paused;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_Run(IBaseFilter *iface, REFERENCE_TIME tStart)\r
 {\r
-       HWCFilter *This = impl_from_IBaseFilter(iface);\r
+    HWCFilter *This = impl_from_IBaseFilter(iface);\r
 \r
-       if (This->m_state == State_Stopped){\r
-               HRESULT hr;\r
-               hr = IBaseFilter_Pause(iface);\r
-               if (FAILED(hr)) {\r
-                       return hr;\r
-               }\r
-       }\r
+    if (This->m_state == State_Stopped){\r
+        HRESULT hr;\r
+        hr = IBaseFilter_Pause(iface);\r
+        if (FAILED(hr)) {\r
+            return hr;\r
+        }\r
+    }\r
 \r
-       This->m_state = State_Running;\r
-       return S_OK;\r
+    This->m_state = State_Running;\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_EnumPins(IBaseFilter *iface, IEnumPins **ppEnum)\r
 {\r
-       if (ppEnum == NULL)\r
-               return E_POINTER;\r
+    if (ppEnum == NULL)\r
+        return E_POINTER;\r
 \r
-       HWCEnumPins_Construct(iface, 0, ppEnum);\r
-       return *ppEnum == NULL ? E_OUTOFMEMORY : S_OK;\r
+    HWCEnumPins_Construct(iface, 0, ppEnum);\r
+    return *ppEnum == NULL ? E_OUTOFMEMORY : S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_FindPin(IBaseFilter *iface, LPCWSTR Id, IPin **ppPin)\r
 {\r
-       HWCFilter *This = impl_from_IBaseFilter(iface);\r
+    HWCFilter *This = impl_from_IBaseFilter(iface);\r
 \r
-       if (ppPin == NULL)\r
-               return E_POINTER;\r
+    if (ppPin == NULL)\r
+        return E_POINTER;\r
 \r
-       if (memcmp((void*)Id, (void*)HWCPinName, sizeof(HWCPinName))) {\r
-               return VFW_E_NOT_FOUND;\r
-       }\r
+    if (memcmp((void*)Id, (void*)HWCPinName, sizeof(HWCPinName))) {\r
+        return VFW_E_NOT_FOUND;\r
+    }\r
 \r
-       if (!This->m_pPin) {\r
-                HWCInPin_Construct(iface, &This->m_pPin);\r
-       }\r
-       *ppPin = This->m_pPin;\r
+    if (!This->m_pPin) {\r
+         HWCInPin_Construct(iface, &This->m_pPin);\r
+    }\r
+    *ppPin = This->m_pPin;\r
 \r
-       IPin_AddRef(This->m_pPin);\r
-       return S_OK;\r
+    IPin_AddRef(This->m_pPin);\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_QueryFilterInfo(IBaseFilter *iface, FILTER_INFO *pInfo)\r
 {\r
-       HWCFilter *This = impl_from_IBaseFilter(iface);\r
+    HWCFilter *This = impl_from_IBaseFilter(iface);\r
 \r
-       if (pInfo == NULL)\r
-               return E_POINTER;\r
+    if (pInfo == NULL)\r
+        return E_POINTER;\r
 \r
-       memcpy((void*)pInfo->achName, (void*)HWCFilterName, sizeof(HWCFilterName));\r
-       pInfo->pGraph = This->m_pFilterGraph;\r
-       if(This->m_pFilterGraph) {\r
-               IFilterGraph_AddRef(This->m_pFilterGraph);\r
-       }\r
-       return S_OK;\r
+    memcpy((void*)pInfo->achName, (void*)HWCFilterName, sizeof(HWCFilterName));\r
+    pInfo->pGraph = This->m_pFilterGraph;\r
+    if(This->m_pFilterGraph) {\r
+        IFilterGraph_AddRef(This->m_pFilterGraph);\r
+    }\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_JoinFilterGraph(IBaseFilter *iface, IFilterGraph *pGraph,\r
-                                                                               LPCWSTR pName)\r
+                                        LPCWSTR pName)\r
 {\r
-       HWCFilter *This = impl_from_IBaseFilter(iface);\r
+    HWCFilter *This = impl_from_IBaseFilter(iface);\r
 \r
-       This->m_pFilterGraph = pGraph;\r
-       if (pGraph) {\r
-               IFilterGraph_AddRef(pGraph);\r
-       }\r
-       return S_OK;\r
+    This->m_pFilterGraph = pGraph;\r
+    if (pGraph) {\r
+        IFilterGraph_AddRef(pGraph);\r
+    }\r
+    return S_OK;\r
 }\r
 \r
 static STDMETHODIMP HWCFilter_QueryVendorInfo(IBaseFilter *iface, LPWSTR* pVendorInfo)\r
 {\r
-       return E_NOTIMPL;\r
+    return E_NOTIMPL;\r
 }\r
 \r
 static IBaseFilterVtbl HWCFilter_Vtbl =\r
 {\r
-       HWCFilter_QueryInterface,\r
-       HWCFilter_AddRef,\r
-       HWCFilter_Release,\r
-       HWCFilter_GetClassID,\r
-       HWCFilter_Stop,\r
-       HWCFilter_Pause,\r
-       HWCFilter_Run,\r
-       HWCFilter_GetState,\r
-       HWCFilter_SetSyncSource,\r
-       HWCFilter_GetSyncSource,\r
-       HWCFilter_EnumPins,\r
-       HWCFilter_FindPin,\r
-       HWCFilter_QueryFilterInfo,\r
-       HWCFilter_JoinFilterGraph,\r
-       HWCFilter_QueryVendorInfo\r
+    HWCFilter_QueryInterface,\r
+    HWCFilter_AddRef,\r
+    HWCFilter_Release,\r
+    HWCFilter_GetClassID,\r
+    HWCFilter_Stop,\r
+    HWCFilter_Pause,\r
+    HWCFilter_Run,\r
+    HWCFilter_GetState,\r
+    HWCFilter_SetSyncSource,\r
+    HWCFilter_GetSyncSource,\r
+    HWCFilter_EnumPins,\r
+    HWCFilter_FindPin,\r
+    HWCFilter_QueryFilterInfo,\r
+    HWCFilter_JoinFilterGraph,\r
+    HWCFilter_QueryVendorInfo\r
 };\r
 \r
 static STDMETHODIMP HWCFilter_Construct(IBaseFilter **ppv)\r
 {\r
-       HWCFilter *This = (HWCFilter *)g_malloc0(sizeof(HWCFilter));\r
+    HWCFilter *This = (HWCFilter *)g_malloc0(sizeof(HWCFilter));\r
 \r
-       if (!This) {\r
-               return E_OUTOFMEMORY;\r
-       }\r
+    if (!This) {\r
+        return E_OUTOFMEMORY;\r
+    }\r
 \r
-       This->IBaseFilter_iface.lpVtbl = &HWCFilter_Vtbl;\r
-       This->m_pFilterGraph = NULL;\r
-       This->m_state = State_Stopped;\r
-       This->m_cRef = 1;\r
-       HWCInPin_Construct(&This->IBaseFilter_iface, &This->m_pPin);\r
-       *ppv = &This->IBaseFilter_iface;\r
+    This->IBaseFilter_iface.lpVtbl = &HWCFilter_Vtbl;\r
+    This->m_pFilterGraph = NULL;\r
+    This->m_state = State_Stopped;\r
+    This->m_cRef = 1;\r
+    HWCInPin_Construct(&This->IBaseFilter_iface, &This->m_pPin);\r
+    *ppv = &This->IBaseFilter_iface;\r
 \r
-       return S_OK;\r
+    return S_OK;\r
 }\r
 \r
 /**********************************************************\r
@@ -953,63 +953,63 @@ LONG g_dwHeight;
 REFERENCE_TIME g_dwAvgInterval;\r
 \r
 // V4L2 defines copy from videodev2.h\r
-#define V4L2_CTRL_FLAG_SLIDER          0x0020\r
+#define V4L2_CTRL_FLAG_SLIDER       0x0020\r
 \r
-#define V4L2_CTRL_CLASS_USER           0x00980000\r
-#define V4L2_CID_BASE                          (V4L2_CTRL_CLASS_USER | 0x900)\r
-#define V4L2_CID_BRIGHTNESS                    (V4L2_CID_BASE+0)\r
-#define V4L2_CID_CONTRAST                      (V4L2_CID_BASE+1)\r
-#define V4L2_CID_SATURATION                    (V4L2_CID_BASE+2)\r
-#define V4L2_CID_SHARPNESS                     (V4L2_CID_BASE+27)\r
+#define V4L2_CTRL_CLASS_USER        0x00980000\r
+#define V4L2_CID_BASE               (V4L2_CTRL_CLASS_USER | 0x900)\r
+#define V4L2_CID_BRIGHTNESS         (V4L2_CID_BASE+0)\r
+#define V4L2_CID_CONTRAST           (V4L2_CID_BASE+1)\r
+#define V4L2_CID_SATURATION         (V4L2_CID_BASE+2)\r
+#define V4L2_CID_SHARPNESS          (V4L2_CID_BASE+27)\r
 \r
 #define V4L2_PIX_FMT_YUYV    MAKEFOURCC('Y', 'U', 'Y', 'V') /* 16  YUV 4:2:2     */\r
 #define V4L2_PIX_FMT_YUV420  MAKEFOURCC('Y', 'U', '1', '2') /* 12  YUV 4:2:0     */\r
 #define V4L2_PIX_FMT_YVU420  MAKEFOURCC('Y', 'V', '1', '2') /* 12  YVU 4:2:0     */\r
 \r
 typedef struct tagMaruCamConvertPixfmt {\r
-       uint32_t fmt;   /* fourcc */\r
-       uint32_t bpp;   /* bits per pixel, 0 for compressed formats */\r
-       uint32_t needs_conversion;\r
+    uint32_t fmt;   /* fourcc */\r
+    uint32_t bpp;   /* bits per pixel, 0 for compressed formats */\r
+    uint32_t needs_conversion;\r
 } MaruCamConvertPixfmt;\r
 \r
 static MaruCamConvertPixfmt supported_dst_pixfmts[] = {\r
-               { V4L2_PIX_FMT_YUYV, 16, 0 },\r
-               { V4L2_PIX_FMT_YUV420, 12, 0 },\r
-               { V4L2_PIX_FMT_YVU420, 12, 0 },\r
+        { V4L2_PIX_FMT_YUYV, 16, 0 },\r
+        { V4L2_PIX_FMT_YUV420, 12, 0 },\r
+        { V4L2_PIX_FMT_YVU420, 12, 0 },\r
 };\r
 \r
 typedef struct tagMaruCamConvertFrameInfo {\r
-       uint32_t width;\r
-       uint32_t height;\r
+    uint32_t width;\r
+    uint32_t height;\r
 } MaruCamConvertFrameInfo;\r
 \r
 static MaruCamConvertFrameInfo supported_dst_frames[] = {\r
-               { 640, 480 },\r
-               { 352, 288 },\r
-               { 320, 240 },\r
-               { 176, 144 },\r
-               { 160, 120 },\r
+        { 640, 480 },\r
+        { 352, 288 },\r
+        { 320, 240 },\r
+        { 176, 144 },\r
+        { 160, 120 },\r
 };\r
 \r
-#define MARUCAM_CTRL_VALUE_MAX         20\r
-#define MARUCAM_CTRL_VALUE_MIN         1\r
-#define MARUCAM_CTRL_VALUE_MID         10\r
-#define MARUCAM_CTRL_VALUE_STEP                1\r
+#define MARUCAM_CTRL_VALUE_MAX      20\r
+#define MARUCAM_CTRL_VALUE_MIN      1\r
+#define MARUCAM_CTRL_VALUE_MID      10\r
+#define MARUCAM_CTRL_VALUE_STEP     1\r
 \r
 struct marucam_qctrl {\r
-       uint32_t id;\r
-       uint32_t hit;\r
-       long min;\r
-       long max;\r
-       long step;\r
-       long init_val;\r
+    uint32_t id;\r
+    uint32_t hit;\r
+    long min;\r
+    long max;\r
+    long step;\r
+    long init_val;\r
 };\r
 \r
 static struct marucam_qctrl qctrl_tbl[] = {\r
-       { V4L2_CID_BRIGHTNESS, 0, },\r
-       { V4L2_CID_CONTRAST, 0, },\r
-       { V4L2_CID_SATURATION,0, },\r
-       { V4L2_CID_SHARPNESS, 0, },\r
+    { V4L2_CID_BRIGHTNESS, 0, },\r
+    { V4L2_CID_CONTRAST, 0, },\r
+    { V4L2_CID_SATURATION,0, },\r
+    { V4L2_CID_SHARPNESS, 0, },\r
 };\r
 \r
 static MaruCamState *g_state = NULL;\r
@@ -1023,42 +1023,42 @@ static uint32_t cur_frame_idx = 0;
  */\r
 \r
 void v4lconvert_yuyv_to_yuv420(const unsigned char *src, unsigned char *dest,\r
-               uint32_t width, uint32_t height, uint32_t yvu);\r
+        uint32_t width, uint32_t height, uint32_t yvu);\r
 \r
 \r
 static long value_convert_from_guest(long min, long max, long value)\r
 {\r
-       double rate = 0.0;\r
-       long dist = 0, ret = 0;\r
+    double rate = 0.0;\r
+    long dist = 0, ret = 0;\r
 \r
-       dist = max - min;\r
+    dist = max - min;\r
 \r
-       if (dist < MARUCAM_CTRL_VALUE_MAX) {\r
-               rate = (double)MARUCAM_CTRL_VALUE_MAX / (double)dist;\r
-               ret = min + (int32_t)(value / rate);\r
-       } else {\r
-               rate = (double)dist / (double)MARUCAM_CTRL_VALUE_MAX;\r
-               ret = min + (int32_t)(rate * value);\r
-       }\r
-       return ret;\r
+    if (dist < MARUCAM_CTRL_VALUE_MAX) {\r
+        rate = (double)MARUCAM_CTRL_VALUE_MAX / (double)dist;\r
+        ret = min + (int32_t)(value / rate);\r
+    } else {\r
+        rate = (double)dist / (double)MARUCAM_CTRL_VALUE_MAX;\r
+        ret = min + (int32_t)(rate * value);\r
+    }\r
+    return ret;\r
 }\r
 \r
 static long value_convert_to_guest(long min, long max, long value)\r
 {\r
-       double rate  = 0.0;\r
-       long dist = 0, ret = 0;\r
+    double rate  = 0.0;\r
+    long dist = 0, ret = 0;\r
 \r
-       dist = max - min;\r
+    dist = max - min;\r
 \r
-       if (dist < MARUCAM_CTRL_VALUE_MAX) {\r
-               rate = (double)MARUCAM_CTRL_VALUE_MAX / (double)dist;\r
-               ret = (int32_t)((double)(value - min) * rate);\r
-       } else {\r
-               rate = (double)dist / (double)MARUCAM_CTRL_VALUE_MAX;\r
-               ret = (int32_t)((double)(value - min) / rate);\r
-       }\r
+    if (dist < MARUCAM_CTRL_VALUE_MAX) {\r
+        rate = (double)MARUCAM_CTRL_VALUE_MAX / (double)dist;\r
+        ret = (int32_t)((double)(value - min) * rate);\r
+    } else {\r
+        rate = (double)dist / (double)MARUCAM_CTRL_VALUE_MAX;\r
+        ret = (int32_t)((double)(value - min) / rate);\r
+    }\r
 \r
-       return ret;\r
+    return ret;\r
 }\r
 \r
 /*\r
@@ -1066,36 +1066,36 @@ static long value_convert_to_guest(long min, long max, long value)
  */\r
 static STDMETHODIMP marucam_device_callbackfn(ULONG dwSize, BYTE *pBuffer)\r
 {\r
-       static uint32_t index = 0;\r
-       static uint32_t is_init = 1;\r
-       uint32_t width, height;\r
-       width = supported_dst_frames[cur_frame_idx].width;\r
-       height = supported_dst_frames[cur_frame_idx].height;\r
-       void *buf = g_state->vaddr + (g_state->buf_size * index);\r
-\r
-       if (is_init == 1) {\r
-               qemu_thread_get_self(&g_state->thread_id);\r
-               is_init = 0;\r
-       }\r
-\r
-       switch (supported_dst_pixfmts[cur_fmt_idx].fmt) {\r
-       case V4L2_PIX_FMT_YUV420:\r
-               v4lconvert_yuyv_to_yuv420(pBuffer, buf, width, height, 0);\r
-               break;\r
-       case V4L2_PIX_FMT_YVU420:\r
-               v4lconvert_yuyv_to_yuv420(pBuffer, buf, width, height, 1);\r
-               break;\r
-       case V4L2_PIX_FMT_YUYV:\r
-               memcpy(buf, (void*)pBuffer, dwSize);\r
-               break;\r
-       }\r
-       index = !index;\r
-\r
-       if (g_state->req_frame) {\r
-               qemu_irq_raise(g_state->dev.irq[2]);\r
-               g_state->req_frame = 0;\r
-       }\r
-       return S_OK;\r
+    static uint32_t index = 0;\r
+    static uint32_t is_init = 1;\r
+    uint32_t width, height;\r
+    width = supported_dst_frames[cur_frame_idx].width;\r
+    height = supported_dst_frames[cur_frame_idx].height;\r
+    void *buf = g_state->vaddr + (g_state->buf_size * index);\r
+\r
+    if (is_init == 1) {\r
+        qemu_thread_get_self(&g_state->thread_id);\r
+        is_init = 0;\r
+    }\r
+\r
+    switch (supported_dst_pixfmts[cur_fmt_idx].fmt) {\r
+    case V4L2_PIX_FMT_YUV420:\r
+        v4lconvert_yuyv_to_yuv420(pBuffer, buf, width, height, 0);\r
+        break;\r
+    case V4L2_PIX_FMT_YVU420:\r
+        v4lconvert_yuyv_to_yuv420(pBuffer, buf, width, height, 1);\r
+        break;\r
+    case V4L2_PIX_FMT_YUYV:\r
+        memcpy(buf, (void*)pBuffer, dwSize);\r
+        break;\r
+    }\r
+    index = !index;\r
+\r
+    if (g_state->req_frame) {\r
+        qemu_irq_raise(g_state->dev.irq[2]);\r
+        g_state->req_frame = 0;\r
+    }\r
+    return S_OK;\r
 }\r
 \r
 /*\r
@@ -1104,901 +1104,901 @@ static STDMETHODIMP marucam_device_callbackfn(ULONG dwSize, BYTE *pBuffer)
 \r
 static STDMETHODIMP_(void) CloseInterfaces(void)\r
 {\r
-       INFO("%s\n", __func__);\r
-       if (g_pMediaControl)\r
-               g_pMediaControl->lpVtbl->Stop(g_pMediaControl);\r
+    INFO("%s\n", __func__);\r
+    if (g_pMediaControl)\r
+        g_pMediaControl->lpVtbl->Stop(g_pMediaControl);\r
 \r
-       if (g_pOutputPin)\r
-               g_pOutputPin->lpVtbl->Disconnect(g_pOutputPin);\r
+    if (g_pOutputPin)\r
+        g_pOutputPin->lpVtbl->Disconnect(g_pOutputPin);\r
 \r
-       SAFE_RELEASE(g_pGB);\r
-       SAFE_RELEASE(g_pCGB);\r
-       SAFE_RELEASE(g_pMediaControl);\r
-       SAFE_RELEASE(g_pOutputPin);\r
-       SAFE_RELEASE(g_pInputPin);\r
-       SAFE_RELEASE(g_pDstFilter);\r
-       SAFE_RELEASE(g_pSrcFilter);\r
-       SAFE_RELEASE(g_pCallback);\r
+    SAFE_RELEASE(g_pGB);\r
+    SAFE_RELEASE(g_pCGB);\r
+    SAFE_RELEASE(g_pMediaControl);\r
+    SAFE_RELEASE(g_pOutputPin);\r
+    SAFE_RELEASE(g_pInputPin);\r
+    SAFE_RELEASE(g_pDstFilter);\r
+    SAFE_RELEASE(g_pSrcFilter);\r
+    SAFE_RELEASE(g_pCallback);\r
 }\r
 \r
 static STDMETHODIMP_(void) DeleteMediaType(AM_MEDIA_TYPE *pmt)\r
 {\r
-       INFO("%s\n", __func__);\r
-       if (pmt == NULL) {\r
-               return;\r
-       }\r
+    INFO("%s\n", __func__);\r
+    if (pmt == NULL) {\r
+        return;\r
+    }\r
 \r
-       if (pmt->cbFormat != 0) {\r
-               CoTaskMemFree((PVOID)pmt->pbFormat);\r
-               pmt->cbFormat = 0;\r
-               pmt->pbFormat = NULL;\r
-       }\r
-       if (pmt->pUnk != NULL) {\r
-               pmt->pUnk->lpVtbl->Release(pmt->pUnk);\r
-               pmt->pUnk = NULL;\r
-       }\r
+    if (pmt->cbFormat != 0) {\r
+        CoTaskMemFree((PVOID)pmt->pbFormat);\r
+        pmt->cbFormat = 0;\r
+        pmt->pbFormat = NULL;\r
+    }\r
+    if (pmt->pUnk != NULL) {\r
+        pmt->pUnk->lpVtbl->Release(pmt->pUnk);\r
+        pmt->pUnk = NULL;\r
+    }\r
 \r
-       CoTaskMemFree((PVOID)pmt);\r
+    CoTaskMemFree((PVOID)pmt);\r
 }\r
 \r
 static STDMETHODIMP GetPin(IBaseFilter *pFilter, PIN_DIRECTION PinDir, IPin **ppPin)\r
 {\r
-       HRESULT hr;\r
-       IEnumPins *pEnum = NULL;\r
-       IPin *pPin = NULL;\r
-\r
-       INFO("%s\n", __func__);\r
-\r
-       if (ppPin == NULL)\r
-       {\r
-               return E_POINTER;\r
-       }\r
-\r
-       hr = pFilter->lpVtbl->EnumPins(pFilter, &pEnum);\r
-       if (FAILED(hr))\r
-               return hr;\r
-\r
-       while(pEnum->lpVtbl->Next(pEnum, 1, &pPin, 0) == S_OK)\r
-       {\r
-               PIN_DIRECTION PinDirThis;\r
-               hr = pPin->lpVtbl->QueryDirection(pPin, &PinDirThis);\r
-               if (FAILED(hr))\r
-               {\r
-                       SAFE_RELEASE(pPin);\r
-                       SAFE_RELEASE(pEnum);\r
-                       return hr;\r
-               }\r
-               if (PinDir == PinDirThis)\r
-               {\r
-                       *ppPin = pPin;\r
-                       SAFE_RELEASE(pEnum);\r
-                       return S_OK;\r
-               }\r
-               SAFE_RELEASE(pPin);\r
-       }\r
-\r
-       SAFE_RELEASE(pEnum);\r
-       return S_FALSE;\r
+    HRESULT hr;\r
+    IEnumPins *pEnum = NULL;\r
+    IPin *pPin = NULL;\r
+\r
+    INFO("%s\n", __func__);\r
+\r
+    if (ppPin == NULL)\r
+    {\r
+        return E_POINTER;\r
+    }\r
+\r
+    hr = pFilter->lpVtbl->EnumPins(pFilter, &pEnum);\r
+    if (FAILED(hr))\r
+        return hr;\r
+\r
+    while(pEnum->lpVtbl->Next(pEnum, 1, &pPin, 0) == S_OK)\r
+    {\r
+        PIN_DIRECTION PinDirThis;\r
+        hr = pPin->lpVtbl->QueryDirection(pPin, &PinDirThis);\r
+        if (FAILED(hr))\r
+        {\r
+            SAFE_RELEASE(pPin);\r
+            SAFE_RELEASE(pEnum);\r
+            return hr;\r
+        }\r
+        if (PinDir == PinDirThis)\r
+        {\r
+            *ppPin = pPin;\r
+            SAFE_RELEASE(pEnum);\r
+            return S_OK;\r
+        }\r
+        SAFE_RELEASE(pPin);\r
+    }\r
+\r
+    SAFE_RELEASE(pEnum);\r
+    return S_FALSE;\r
 }\r
 \r
 static STDMETHODIMP GraphBuilder_Init(void)\r
 {\r
-       HRESULT hr;\r
-       INFO("%s\n", __func__);\r
+    HRESULT hr;\r
+    INFO("%s\n", __func__);\r
 \r
-       hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC, &IID_IGraphBuilder, (void**)&g_pGB);\r
-       if (FAILED(hr))\r
-               return hr;\r
+    hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC, &IID_IGraphBuilder, (void**)&g_pGB);\r
+    if (FAILED(hr))\r
+        return hr;\r
 \r
-       hr = CoCreateInstance(&CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC, &IID_ICaptureGraphBuilder2, (void**)&g_pCGB);\r
-       if (FAILED(hr))\r
-               return hr;\r
+    hr = CoCreateInstance(&CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC, &IID_ICaptureGraphBuilder2, (void**)&g_pCGB);\r
+    if (FAILED(hr))\r
+        return hr;\r
 \r
-       hr = g_pCGB->lpVtbl->SetFiltergraph(g_pCGB, g_pGB);\r
-       if (FAILED(hr))\r
-               return hr;\r
+    hr = g_pCGB->lpVtbl->SetFiltergraph(g_pCGB, g_pGB);\r
+    if (FAILED(hr))\r
+        return hr;\r
 \r
-       hr = g_pGB->lpVtbl->QueryInterface(g_pGB, &IID_IMediaControl, (void **)&g_pMediaControl);\r
-       if (FAILED(hr))\r
-               return hr;\r
+    hr = g_pGB->lpVtbl->QueryInterface(g_pGB, &IID_IMediaControl, (void **)&g_pMediaControl);\r
+    if (FAILED(hr))\r
+        return hr;\r
 \r
-       hr = HWCGrabCallback_Construct(&g_pCallback);\r
-       if (g_pCallback == NULL)\r
-               hr = E_OUTOFMEMORY;\r
+    hr = HWCGrabCallback_Construct(&g_pCallback);\r
+    if (g_pCallback == NULL)\r
+        hr = E_OUTOFMEMORY;\r
 \r
-       hr = ((HWCGrabCallback*)g_pCallback)->SetCallback(g_pCallback, (CallbackFn)marucam_device_callbackfn);\r
+    hr = ((HWCGrabCallback*)g_pCallback)->SetCallback(g_pCallback, (CallbackFn)marucam_device_callbackfn);\r
 \r
-       return hr;\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP BindSourceFilter(void)\r
 {\r
-       HRESULT hr;\r
-       ICreateDevEnum *pCreateDevEnum = NULL;\r
-       IEnumMoniker *pEnumMK = NULL;\r
-       IMoniker *pMoniKer;\r
-\r
-       INFO("%s\n", __func__);\r
-       hr = CoCreateInstance(&CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC, &IID_ICreateDevEnum, (void**)&pCreateDevEnum);\r
-       if (FAILED(hr))\r
-               return hr;\r
-\r
-       hr = pCreateDevEnum->lpVtbl->CreateClassEnumerator(pCreateDevEnum, &CLSID_VideoInputDeviceCategory, &pEnumMK, 0);\r
-       if (FAILED(hr))\r
-       {\r
-               pCreateDevEnum->lpVtbl->Release(pCreateDevEnum);\r
-               return hr;\r
-       }\r
-\r
-       if (!pEnumMK)\r
-       {\r
-               pCreateDevEnum->lpVtbl->Release(pCreateDevEnum);\r
-               return E_FAIL;\r
-       }\r
-       pEnumMK->lpVtbl->Reset(pEnumMK);\r
-\r
-       hr = pEnumMK->lpVtbl->Next(pEnumMK, 1, &pMoniKer, NULL);\r
-       if (hr == S_FALSE)\r
-       {\r
-               hr = E_FAIL;\r
-       }\r
-       if (SUCCEEDED(hr))\r
-       {\r
-               IPropertyBag *pBag = NULL;\r
-               hr = pMoniKer->lpVtbl->BindToStorage(pMoniKer, 0, 0, &IID_IPropertyBag, (void **)&pBag);\r
-               if(SUCCEEDED(hr))\r
-               {\r
-                       VARIANT var;\r
-                       var.vt = VT_BSTR;\r
-                       hr = pBag->lpVtbl->Read(pBag, L"FriendlyName", &var, NULL);\r
-                       if (hr == NOERROR)\r
-                       {\r
-                               hr = pMoniKer->lpVtbl->BindToObject(pMoniKer, NULL, NULL, &IID_IBaseFilter, (void**)&g_pSrcFilter);\r
-                               if (FAILED(hr))\r
-                               {\r
-                                       ERR("Counldn't bind moniker to filter object!!\n");\r
-                               }\r
-                               else\r
-                               {\r
-                                       g_pSrcFilter->lpVtbl->AddRef(g_pSrcFilter);\r
-                               }\r
-                               SysFreeString(var.bstrVal);\r
-                       }\r
-                       pBag->lpVtbl->Release(pBag);\r
-               }\r
-               pMoniKer->lpVtbl->Release(pMoniKer);\r
-       }\r
-\r
-       if (SUCCEEDED(hr))\r
-       {\r
-               hr = g_pGB->lpVtbl->AddFilter(g_pGB, g_pSrcFilter, L"Video Capture");\r
-               if (hr != S_OK && hr != S_FALSE)\r
-               {\r
-                       ERR("Counldn't add Video Capture filter to our graph!\n");\r
-               }\r
-       }\r
-\r
-       return hr;\r
+    HRESULT hr;\r
+    ICreateDevEnum *pCreateDevEnum = NULL;\r
+    IEnumMoniker *pEnumMK = NULL;\r
+    IMoniker *pMoniKer;\r
+\r
+    INFO("%s\n", __func__);\r
+    hr = CoCreateInstance(&CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC, &IID_ICreateDevEnum, (void**)&pCreateDevEnum);\r
+    if (FAILED(hr))\r
+        return hr;\r
+\r
+    hr = pCreateDevEnum->lpVtbl->CreateClassEnumerator(pCreateDevEnum, &CLSID_VideoInputDeviceCategory, &pEnumMK, 0);\r
+    if (FAILED(hr))\r
+    {\r
+        pCreateDevEnum->lpVtbl->Release(pCreateDevEnum);\r
+        return hr;\r
+    }\r
+\r
+    if (!pEnumMK)\r
+    {\r
+        pCreateDevEnum->lpVtbl->Release(pCreateDevEnum);\r
+        return E_FAIL;\r
+    }\r
+    pEnumMK->lpVtbl->Reset(pEnumMK);\r
+\r
+    hr = pEnumMK->lpVtbl->Next(pEnumMK, 1, &pMoniKer, NULL);\r
+    if (hr == S_FALSE)\r
+    {\r
+        hr = E_FAIL;\r
+    }\r
+    if (SUCCEEDED(hr))\r
+    {\r
+        IPropertyBag *pBag = NULL;\r
+        hr = pMoniKer->lpVtbl->BindToStorage(pMoniKer, 0, 0, &IID_IPropertyBag, (void **)&pBag);\r
+        if(SUCCEEDED(hr))\r
+        {\r
+            VARIANT var;\r
+            var.vt = VT_BSTR;\r
+            hr = pBag->lpVtbl->Read(pBag, L"FriendlyName", &var, NULL);\r
+            if (hr == NOERROR)\r
+            {\r
+                hr = pMoniKer->lpVtbl->BindToObject(pMoniKer, NULL, NULL, &IID_IBaseFilter, (void**)&g_pSrcFilter);\r
+                if (FAILED(hr))\r
+                {\r
+                    ERR("Counldn't bind moniker to filter object!!\n");\r
+                }\r
+                else\r
+                {\r
+                    g_pSrcFilter->lpVtbl->AddRef(g_pSrcFilter);\r
+                }\r
+                SysFreeString(var.bstrVal);\r
+            }\r
+            pBag->lpVtbl->Release(pBag);\r
+        }\r
+        pMoniKer->lpVtbl->Release(pMoniKer);\r
+    }\r
+\r
+    if (SUCCEEDED(hr))\r
+    {\r
+        hr = g_pGB->lpVtbl->AddFilter(g_pGB, g_pSrcFilter, L"Video Capture");\r
+        if (hr != S_OK && hr != S_FALSE)\r
+        {\r
+            ERR("Counldn't add Video Capture filter to our graph!\n");\r
+        }\r
+    }\r
+\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP BindTargetFilter(void)\r
 {\r
-       HRESULT hr;\r
-       hr = HWCFilter_Construct(&g_pDstFilter);\r
+    HRESULT hr;\r
+    hr = HWCFilter_Construct(&g_pDstFilter);\r
 \r
-       INFO("%s\n", __func__);\r
-       if (SUCCEEDED(hr) && g_pDstFilter)\r
-       {\r
-               hr = g_pGB->lpVtbl->AddFilter(g_pGB, g_pDstFilter, L"HWCFilter");\r
-               if (FAILED(hr))\r
-               {\r
-                       ERR("Counldn't add HWCFilterr to our graph!\n");\r
-               }\r
-       }\r
-       return hr;\r
+    INFO("%s\n", __func__);\r
+    if (SUCCEEDED(hr) && g_pDstFilter)\r
+    {\r
+        hr = g_pGB->lpVtbl->AddFilter(g_pGB, g_pDstFilter, L"HWCFilter");\r
+        if (FAILED(hr))\r
+        {\r
+            ERR("Counldn't add HWCFilterr to our graph!\n");\r
+        }\r
+    }\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP ConnectFilters(void)\r
 {\r
-       HRESULT hr;\r
+    HRESULT hr;\r
 \r
-       INFO("%s\n", __func__);\r
-       hr = GetPin(g_pSrcFilter, PINDIR_OUTPUT , &g_pOutputPin);\r
-       if (FAILED(hr))\r
-               return hr;\r
+    INFO("%s\n", __func__);\r
+    hr = GetPin(g_pSrcFilter, PINDIR_OUTPUT , &g_pOutputPin);\r
+    if (FAILED(hr))\r
+        return hr;\r
 \r
-       hr = GetPin(g_pDstFilter, PINDIR_INPUT , &g_pInputPin);\r
-       if (FAILED(hr))\r
-               return hr;\r
+    hr = GetPin(g_pDstFilter, PINDIR_INPUT , &g_pInputPin);\r
+    if (FAILED(hr))\r
+        return hr;\r
 \r
-       hr = g_pGB->lpVtbl->Connect(g_pGB, g_pOutputPin, g_pInputPin);\r
-       return hr;\r
+    hr = g_pGB->lpVtbl->Connect(g_pGB, g_pOutputPin, g_pInputPin);\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP SetDefaultValues(void)\r
 {\r
-       HRESULT hr;\r
-       IAMStreamConfig *pSConfig;\r
-       int iCount = 0, iSize = 0;\r
-\r
-       INFO("%s\n", __func__);\r
-       hr = g_pCGB->lpVtbl->FindInterface(g_pCGB, &PIN_CATEGORY_CAPTURE, 0, g_pSrcFilter, &IID_IAMStreamConfig, (void**)&pSConfig);\r
-       if (FAILED(hr)) {\r
-               ERR("failed to FindInterface method\n");\r
-               return hr;\r
-       }\r
-\r
-       hr = pSConfig->lpVtbl->GetNumberOfCapabilities(pSConfig, &iCount, &iSize);\r
-       if (FAILED(hr))\r
-       {\r
-               ERR("failed to GetNumberOfCapabilities method\n");\r
-               pSConfig->lpVtbl->Release(pSConfig);\r
-               return hr;\r
-       }\r
-\r
-       if (iSize == sizeof(VIDEO_STREAM_CONFIG_CAPS))\r
-       {\r
-               int iFormat = 0;\r
-               for (iFormat = 0; iFormat < iCount; iFormat++)\r
-               {\r
-                       VIDEO_STREAM_CONFIG_CAPS scc;\r
-                       AM_MEDIA_TYPE *pmtConfig;\r
-\r
-                       hr = pSConfig->lpVtbl->GetStreamCaps(pSConfig, iFormat, &pmtConfig, (BYTE*)&scc);\r
-                       if (hr == S_OK)\r
-                       {\r
-                               if (IsEqualIID(&pmtConfig->formattype, &FORMAT_VideoInfo))\r
-                               {\r
-                                       VIDEOINFOHEADER* pvi = (VIDEOINFOHEADER*)pmtConfig->pbFormat;\r
-                                       if ((pvi->bmiHeader.biWidth == g_dwWidth) &&\r
-                                               (pvi->bmiHeader.biHeight == g_dwHeight) &&\r
-                                               (pvi->bmiHeader.biCompression == g_dwFourcc))\r
-                                       {\r
-                                               pvi->AvgTimePerFrame = g_dwAvgInterval;\r
-                                               hr = pSConfig->lpVtbl->SetFormat(pSConfig, pmtConfig);\r
-                                               DeleteMediaType(pmtConfig);\r
-                                               INFO("Setting default values.\n");\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               DeleteMediaType(pmtConfig);\r
-                       }\r
-               }\r
-       }\r
-       pSConfig->lpVtbl->Release(pSConfig);\r
-       return hr;\r
+    HRESULT hr;\r
+    IAMStreamConfig *pSConfig;\r
+    int iCount = 0, iSize = 0;\r
+\r
+    INFO("%s\n", __func__);\r
+    hr = g_pCGB->lpVtbl->FindInterface(g_pCGB, &PIN_CATEGORY_CAPTURE, 0, g_pSrcFilter, &IID_IAMStreamConfig, (void**)&pSConfig);\r
+    if (FAILED(hr)) {\r
+        ERR("failed to FindInterface method\n");\r
+        return hr;\r
+    }\r
+\r
+    hr = pSConfig->lpVtbl->GetNumberOfCapabilities(pSConfig, &iCount, &iSize);\r
+    if (FAILED(hr))\r
+    {\r
+        ERR("failed to GetNumberOfCapabilities method\n");\r
+        pSConfig->lpVtbl->Release(pSConfig);\r
+        return hr;\r
+    }\r
+\r
+    if (iSize == sizeof(VIDEO_STREAM_CONFIG_CAPS))\r
+    {\r
+        int iFormat = 0;\r
+        for (iFormat = 0; iFormat < iCount; iFormat++)\r
+        {\r
+            VIDEO_STREAM_CONFIG_CAPS scc;\r
+            AM_MEDIA_TYPE *pmtConfig;\r
+\r
+            hr = pSConfig->lpVtbl->GetStreamCaps(pSConfig, iFormat, &pmtConfig, (BYTE*)&scc);\r
+            if (hr == S_OK)\r
+            {\r
+                if (IsEqualIID(&pmtConfig->formattype, &FORMAT_VideoInfo))\r
+                {\r
+                    VIDEOINFOHEADER* pvi = (VIDEOINFOHEADER*)pmtConfig->pbFormat;\r
+                    if ((pvi->bmiHeader.biWidth == g_dwWidth) &&\r
+                        (pvi->bmiHeader.biHeight == g_dwHeight) &&\r
+                        (pvi->bmiHeader.biCompression == g_dwFourcc))\r
+                    {\r
+                        pvi->AvgTimePerFrame = g_dwAvgInterval;\r
+                        hr = pSConfig->lpVtbl->SetFormat(pSConfig, pmtConfig);\r
+                        DeleteMediaType(pmtConfig);\r
+                        INFO("Setting default values.\n");\r
+                        break;\r
+                    }\r
+                }\r
+                DeleteMediaType(pmtConfig);\r
+            }\r
+        }\r
+    }\r
+    pSConfig->lpVtbl->Release(pSConfig);\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP SetResolution(LONG width, LONG height)\r
 {\r
-       HRESULT hr;\r
-       IAMStreamConfig* vsc = NULL;\r
-       AM_MEDIA_TYPE* pmt = NULL;\r
-\r
-       INFO("%s\n", __func__);\r
-       hr = g_pCGB->lpVtbl->FindInterface(g_pCGB, &PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, g_pSrcFilter, &IID_IAMStreamConfig, (void**)&vsc);\r
-       if (FAILED(hr))\r
-               return hr;\r
-\r
-       hr = vsc->lpVtbl->GetFormat(vsc, &pmt);\r
-       if (FAILED(hr))\r
-       {\r
-               vsc->lpVtbl->Release(vsc);\r
-               return hr;\r
-       }\r
-\r
-       if (pmt != NULL)\r
-       {\r
-               if (IsEqualIID(&pmt->formattype, &FORMAT_VideoInfo))\r
-               {\r
-                       VIDEOINFOHEADER* pvi = (VIDEOINFOHEADER*)pmt->pbFormat;\r
-                       pvi->bmiHeader.biWidth = width;\r
-                       pvi->bmiHeader.biHeight = height;\r
-                       pvi->AvgTimePerFrame = g_dwAvgInterval;\r
-                       pvi->bmiHeader.biSizeImage = ((width * pvi->bmiHeader.biBitCount) >> 3 ) * height;\r
-                       hr = vsc->lpVtbl->SetFormat(vsc, pmt);\r
-               }\r
-               DeleteMediaType(pmt);\r
-       }\r
-       vsc->lpVtbl->Release(vsc);\r
-       return hr;\r
+    HRESULT hr;\r
+    IAMStreamConfig* vsc = NULL;\r
+    AM_MEDIA_TYPE* pmt = NULL;\r
+\r
+    INFO("%s\n", __func__);\r
+    hr = g_pCGB->lpVtbl->FindInterface(g_pCGB, &PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, g_pSrcFilter, &IID_IAMStreamConfig, (void**)&vsc);\r
+    if (FAILED(hr))\r
+        return hr;\r
+\r
+    hr = vsc->lpVtbl->GetFormat(vsc, &pmt);\r
+    if (FAILED(hr))\r
+    {\r
+        vsc->lpVtbl->Release(vsc);\r
+        return hr;\r
+    }\r
+\r
+    if (pmt != NULL)\r
+    {\r
+        if (IsEqualIID(&pmt->formattype, &FORMAT_VideoInfo))\r
+        {\r
+            VIDEOINFOHEADER* pvi = (VIDEOINFOHEADER*)pmt->pbFormat;\r
+            pvi->bmiHeader.biWidth = width;\r
+            pvi->bmiHeader.biHeight = height;\r
+            pvi->AvgTimePerFrame = g_dwAvgInterval;\r
+            pvi->bmiHeader.biSizeImage = ((width * pvi->bmiHeader.biBitCount) >> 3 ) * height;\r
+            hr = vsc->lpVtbl->SetFormat(vsc, pmt);\r
+        }\r
+        DeleteMediaType(pmt);\r
+    }\r
+    vsc->lpVtbl->Release(vsc);\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP QueryVideoProcAmp(long nProperty, long *pMin, long *pMax, long *pStep, long *pDefault)\r
 {\r
-       HRESULT hr;\r
-       long Flags;\r
-       IAMVideoProcAmp *pProcAmp = NULL;\r
+    HRESULT hr;\r
+    long Flags;\r
+    IAMVideoProcAmp *pProcAmp = NULL;\r
 \r
-       INFO("%s\n", __func__);\r
+    INFO("%s\n", __func__);\r
 \r
-       hr = g_pSrcFilter->lpVtbl->QueryInterface(g_pSrcFilter, &IID_IAMVideoProcAmp, (void**)&pProcAmp);\r
-       if (FAILED(hr)) {\r
-               return hr;\r
-       }\r
+    hr = g_pSrcFilter->lpVtbl->QueryInterface(g_pSrcFilter, &IID_IAMVideoProcAmp, (void**)&pProcAmp);\r
+    if (FAILED(hr)) {\r
+        return hr;\r
+    }\r
 \r
-       hr = pProcAmp->lpVtbl->GetRange(pProcAmp, nProperty, pMin, pMax, pStep, pDefault, &Flags);\r
+    hr = pProcAmp->lpVtbl->GetRange(pProcAmp, nProperty, pMin, pMax, pStep, pDefault, &Flags);\r
 \r
-       SAFE_RELEASE(pProcAmp);\r
-       return hr;\r
+    SAFE_RELEASE(pProcAmp);\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP GetVideoProcAmp(long nProperty, long *pValue)\r
 {\r
-       HRESULT hr;\r
-       long Flags;\r
-       IAMVideoProcAmp *pProcAmp = NULL;\r
+    HRESULT hr;\r
+    long Flags;\r
+    IAMVideoProcAmp *pProcAmp = NULL;\r
 \r
-       INFO("%s\n", __func__);\r
-       hr = g_pSrcFilter->lpVtbl->QueryInterface(g_pSrcFilter, &IID_IAMVideoProcAmp, (void**)&pProcAmp);\r
-       if (FAILED(hr))\r
-               return hr;\r
+    INFO("%s\n", __func__);\r
+    hr = g_pSrcFilter->lpVtbl->QueryInterface(g_pSrcFilter, &IID_IAMVideoProcAmp, (void**)&pProcAmp);\r
+    if (FAILED(hr))\r
+        return hr;\r
 \r
-       hr = pProcAmp->lpVtbl->Get(pProcAmp, nProperty, pValue, &Flags);\r
-       if (FAILED(hr)) {\r
-               ERR("Failed to get property for video\n");\r
-       }\r
+    hr = pProcAmp->lpVtbl->Get(pProcAmp, nProperty, pValue, &Flags);\r
+    if (FAILED(hr)) {\r
+        ERR("Failed to get property for video\n");\r
+    }\r
 \r
-       SAFE_RELEASE(pProcAmp);\r
-       return hr;\r
+    SAFE_RELEASE(pProcAmp);\r
+    return hr;\r
 }\r
 \r
 static STDMETHODIMP SetVideoProcAmp(long nProperty, long value)\r
 {\r
-       HRESULT hr;\r
+    HRESULT hr;\r
 \r
-       IAMVideoProcAmp *pProcAmp = NULL;\r
-       hr = g_pSrcFilter->lpVtbl->QueryInterface(g_pSrcFilter, &IID_IAMVideoProcAmp, (void**)&pProcAmp);\r
-       if (FAILED(hr))\r
-               return hr;\r
+    IAMVideoProcAmp *pProcAmp = NULL;\r
+    hr = g_pSrcFilter->lpVtbl->QueryInterface(g_pSrcFilter, &IID_IAMVideoProcAmp, (void**)&pProcAmp);\r
+    if (FAILED(hr))\r
+        return hr;\r
 \r
-       hr = pProcAmp->lpVtbl->Set(pProcAmp, nProperty, value, VideoProcAmp_Flags_Manual);\r
-       if (FAILED(hr)) {\r
-               ERR("Failed to set property for video\n");\r
-       }\r
-       SAFE_RELEASE(pProcAmp);\r
-       return hr;\r
+    hr = pProcAmp->lpVtbl->Set(pProcAmp, nProperty, value, VideoProcAmp_Flags_Manual);\r
+    if (FAILED(hr)) {\r
+        ERR("Failed to set property for video\n");\r
+    }\r
+    SAFE_RELEASE(pProcAmp);\r
+    return hr;\r
 }\r
 \r
 // MARUCAM_CMD_INIT\r
 void marucam_device_init(MaruCamState* state)\r
 {\r
-       g_state = state;\r
+    g_state = state;\r
 }\r
 \r
 // MARUCAM_CMD_OPEN\r
 void marucam_device_open(MaruCamState* state)\r
 {\r
-       HRESULT hr;\r
-       MaruCamParam *param = state->param;\r
-       param->top = 0;\r
-\r
-       INFO("%s\n", __func__);\r
-       CoInitialize(NULL);\r
-\r
-       hr = GraphBuilder_Init();\r
-       if (FAILED(hr)) {\r
-               ERR("GraphBuilder_Init\n");\r
-               goto error_failed;\r
-       }\r
-\r
-       hr = BindSourceFilter();\r
-       if (FAILED(hr)) {\r
-               ERR("BindSourceFilter\n");\r
-               goto error_failed;\r
-       }\r
-\r
-       hr = BindTargetFilter();\r
-       if (FAILED(hr)) {\r
-               ERR("BindTargetFilter\n");\r
-               goto error_failed;\r
-       }\r
-\r
-       hr = ConnectFilters();\r
-       if (FAILED(hr)) {\r
-               ERR("ConnectFilters\n");\r
-               goto error_failed;\r
-       }\r
-\r
-       g_dwAvgInterval = 333333;\r
-       g_dwFourcc = MAKEFOURCC('Y','U','Y','2');\r
-       g_dwHeight = 480;\r
-       g_dwWidth = 640;\r
-       hr = SetDefaultValues();\r
-       if (hr != S_OK) {\r
-               ERR("SetDefaultValues\n");\r
-               goto error_failed;\r
-       }\r
-\r
-       INFO("Open successfully!!!\n");\r
-       return;\r
+    HRESULT hr;\r
+    MaruCamParam *param = state->param;\r
+    param->top = 0;\r
+\r
+    INFO("%s\n", __func__);\r
+    CoInitialize(NULL);\r
+\r
+    hr = GraphBuilder_Init();\r
+    if (FAILED(hr)) {\r
+        ERR("GraphBuilder_Init\n");\r
+        goto error_failed;\r
+    }\r
+\r
+    hr = BindSourceFilter();\r
+    if (FAILED(hr)) {\r
+        ERR("BindSourceFilter\n");\r
+        goto error_failed;\r
+    }\r
+\r
+    hr = BindTargetFilter();\r
+    if (FAILED(hr)) {\r
+        ERR("BindTargetFilter\n");\r
+        goto error_failed;\r
+    }\r
+\r
+    hr = ConnectFilters();\r
+    if (FAILED(hr)) {\r
+        ERR("ConnectFilters\n");\r
+        goto error_failed;\r
+    }\r
+\r
+    g_dwAvgInterval = 333333;\r
+    g_dwFourcc = MAKEFOURCC('Y','U','Y','2');\r
+    g_dwHeight = 480;\r
+    g_dwWidth = 640;\r
+    hr = SetDefaultValues();\r
+    if (hr != S_OK) {\r
+        ERR("SetDefaultValues\n");\r
+        goto error_failed;\r
+    }\r
+\r
+    INFO("Open successfully!!!\n");\r
+    return;\r
 \r
 error_failed:\r
-       CloseInterfaces();\r
-       CoUninitialize();\r
-       param->errCode = EINVAL;\r
-       ERR("camera device open failed!!!, [HRESULT : 0x%x]\n", hr);\r
+    CloseInterfaces();\r
+    CoUninitialize();\r
+    param->errCode = EINVAL;\r
+    ERR("camera device open failed!!!, [HRESULT : 0x%x]\n", hr);\r
 }\r
 \r
 // MARUCAM_CMD_CLOSE\r
 void marucam_device_close(MaruCamState* state)\r
 {\r
-       MaruCamParam *param = state->param;\r
-       param->top = 0;\r
+    MaruCamParam *param = state->param;\r
+    param->top = 0;\r
 \r
-       CloseInterfaces();\r
-       CoUninitialize();\r
-       INFO("Close successfully!!!\n");\r
+    CloseInterfaces();\r
+    CoUninitialize();\r
+    INFO("Close successfully!!!\n");\r
 }\r
 \r
 // MARUCAM_CMD_START_PREVIEW\r
 void marucam_device_start_preview(MaruCamState* state)\r
 {\r
-       HRESULT hr;\r
-       uint32_t width, height;\r
-       MaruCamParam *param = state->param;\r
-       param->top = 0;\r
+    HRESULT hr;\r
+    uint32_t width, height;\r
+    MaruCamParam *param = state->param;\r
+    param->top = 0;\r
 \r
-       INFO("%s\n", __func__);\r
-       assert(g_pCallback != NULL);\r
-       hr = ((HWCInPin*)g_pInputPin)->SetGrabCallbackIF(g_pInputPin, g_pCallback);\r
-       if (FAILED(hr)) {\r
-               ERR("Failed to set IGrabCallback interface.\n");\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
+    INFO("%s\n", __func__);\r
+    assert(g_pCallback != NULL);\r
+    hr = ((HWCInPin*)g_pInputPin)->SetGrabCallbackIF(g_pInputPin, g_pCallback);\r
+    if (FAILED(hr)) {\r
+        ERR("Failed to set IGrabCallback interface.\n");\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
 \r
-       hr = g_pMediaControl->lpVtbl->Run(g_pMediaControl);\r
-       if (FAILED(hr)) {\r
-               ERR("Failed to run media control.\n");\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
+    hr = g_pMediaControl->lpVtbl->Run(g_pMediaControl);\r
+    if (FAILED(hr)) {\r
+        ERR("Failed to run media control.\n");\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
 \r
-       qemu_mutex_lock(&state->thread_mutex);\r
-       state->streamon = 1;\r
-       qemu_mutex_unlock(&state->thread_mutex);\r
+    qemu_mutex_lock(&state->thread_mutex);\r
+    state->streamon = 1;\r
+    qemu_mutex_unlock(&state->thread_mutex);\r
 \r
-       width = supported_dst_frames[cur_frame_idx].width;\r
-       height = supported_dst_frames[cur_frame_idx].height;\r
-       state->buf_size = height * ((width * supported_dst_pixfmts[cur_fmt_idx].bpp) >> 3);\r
+    width = supported_dst_frames[cur_frame_idx].width;\r
+    height = supported_dst_frames[cur_frame_idx].height;\r
+    state->buf_size = height * ((width * supported_dst_pixfmts[cur_fmt_idx].bpp) >> 3);\r
 \r
-       INFO("Start preview!!!\n");\r
+    INFO("Start preview!!!\n");\r
 }\r
 \r
 // MARUCAM_CMD_STOP_PREVIEW\r
 void marucam_device_stop_preview(MaruCamState* state)\r
 {\r
-       HRESULT hr;\r
-       MaruCamParam *param = state->param;\r
-       param->top = 0;\r
+    HRESULT hr;\r
+    MaruCamParam *param = state->param;\r
+    param->top = 0;\r
 \r
-       hr = ((HWCInPin*)g_pInputPin)->SetGrabCallbackIF(g_pInputPin, NULL);\r
-       if (FAILED(hr)) {\r
-               ERR("Failed to set IGrabCallback interface.\n");\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
+    hr = ((HWCInPin*)g_pInputPin)->SetGrabCallbackIF(g_pInputPin, NULL);\r
+    if (FAILED(hr)) {\r
+        ERR("Failed to set IGrabCallback interface.\n");\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
 \r
-       hr = g_pMediaControl->lpVtbl->Stop(g_pMediaControl);\r
-       if (FAILED(hr)) {\r
-               ERR("Failed to stop media control.\n");\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
+    hr = g_pMediaControl->lpVtbl->Stop(g_pMediaControl);\r
+    if (FAILED(hr)) {\r
+        ERR("Failed to stop media control.\n");\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
 \r
-       qemu_mutex_lock(&state->thread_mutex);\r
-       state->streamon = 0;\r
-       qemu_mutex_unlock(&state->thread_mutex);\r
-       state->buf_size = 0;\r
+    qemu_mutex_lock(&state->thread_mutex);\r
+    state->streamon = 0;\r
+    qemu_mutex_unlock(&state->thread_mutex);\r
+    state->buf_size = 0;\r
 \r
-       INFO("Stop preview!!!\n");\r
+    INFO("Stop preview!!!\n");\r
 }\r
 \r
 // MARUCAM_CMD_S_PARAM\r
 void marucam_device_s_param(MaruCamState* state)\r
 {\r
-       MaruCamParam *param = state->param;\r
+    MaruCamParam *param = state->param;\r
 \r
-       param->top = 0;\r
-       TRACE("setting fps : %d/%d\n", param->stack[0], param->stack[1]);\r
+    param->top = 0;\r
+    TRACE("setting fps : %d/%d\n", param->stack[0], param->stack[1]);\r
 }\r
 \r
 // MARUCAM_CMD_G_PARAM\r
 void marucam_device_g_param(MaruCamState* state)\r
 {\r
-       MaruCamParam *param = state->param;\r
+    MaruCamParam *param = state->param;\r
 \r
-       param->top = 0;\r
-       TRACE("getting fps : 30/1\n");\r
+    param->top = 0;\r
+    TRACE("getting fps : 30/1\n");\r
 \r
-       param->stack[0] = 0x1000; // V4L2_CAP_TIMEPERFRAME\r
-       param->stack[1] = 1; // numerator;\r
-       param->stack[2] = 30; // denominator;\r
+    param->stack[0] = 0x1000; // V4L2_CAP_TIMEPERFRAME\r
+    param->stack[1] = 1; // numerator;\r
+    param->stack[2] = 30; // denominator;\r
 }\r
 \r
 // MARUCAM_CMD_S_FMT\r
 void marucam_device_s_fmt(MaruCamState* state)\r
 {\r
-       uint32_t width, height, pixfmt, pidx, fidx;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       width = param->stack[0];                // width\r
-       height = param->stack[1];               // height\r
-       pixfmt = param->stack[2];               // pixelformat\r
-\r
-       for (fidx = 0; fidx < ARRAY_SIZE(supported_dst_frames); fidx++) {\r
-               if ((supported_dst_frames[fidx].width == width) &&\r
-                               (supported_dst_frames[fidx].height == height)) {\r
-                       break;\r
-               }\r
-       }\r
-       if (fidx == ARRAY_SIZE(supported_dst_frames)) {\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-       for (pidx = 0; pidx < ARRAY_SIZE(supported_dst_pixfmts); pidx++) {\r
-               if (supported_dst_pixfmts[pidx].fmt == pixfmt) {\r
-                       break;\r
-               }\r
-       }\r
-       if (pidx == ARRAY_SIZE(supported_dst_pixfmts)) {\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-\r
-       if ((supported_dst_frames[cur_frame_idx].width != width) &&\r
-                       (supported_dst_frames[cur_frame_idx].height != height)) {\r
-               HRESULT hr = SetResolution((LONG)width, (LONG)height);\r
-               if (FAILED(hr)) {\r
-                       param->errCode = EINVAL;\r
-                       return;\r
-               }\r
-               g_dwWidth = (LONG)width;\r
-               g_dwHeight = (LONG)height;\r
-       }\r
-\r
-       param->stack[0] = width;\r
-       param->stack[1] = height;\r
-       param->stack[2] = 1; // V4L2_FIELD_NONE\r
-       param->stack[3] = pixfmt;\r
-       // bytes per line = (width * bpp) / 8\r
-       param->stack[4] = (width * supported_dst_pixfmts[pidx].bpp) >> 3;\r
-       param->stack[5] = param->stack[4] * height;     // height * bytesperline\r
-       param->stack[6] = 0;\r
-       param->stack[7] = 0;\r
-\r
-       cur_frame_idx = fidx;\r
-       cur_fmt_idx = pidx;\r
-\r
-       TRACE("Set format...\n");\r
+    uint32_t width, height, pixfmt, pidx, fidx;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    width = param->stack[0];        // width\r
+    height = param->stack[1];       // height\r
+    pixfmt = param->stack[2];       // pixelformat\r
+\r
+    for (fidx = 0; fidx < ARRAY_SIZE(supported_dst_frames); fidx++) {\r
+        if ((supported_dst_frames[fidx].width == width) &&\r
+                (supported_dst_frames[fidx].height == height)) {\r
+            break;\r
+        }\r
+    }\r
+    if (fidx == ARRAY_SIZE(supported_dst_frames)) {\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+    for (pidx = 0; pidx < ARRAY_SIZE(supported_dst_pixfmts); pidx++) {\r
+        if (supported_dst_pixfmts[pidx].fmt == pixfmt) {\r
+            break;\r
+        }\r
+    }\r
+    if (pidx == ARRAY_SIZE(supported_dst_pixfmts)) {\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+\r
+    if ((supported_dst_frames[cur_frame_idx].width != width) &&\r
+            (supported_dst_frames[cur_frame_idx].height != height)) {\r
+        HRESULT hr = SetResolution((LONG)width, (LONG)height);\r
+        if (FAILED(hr)) {\r
+            param->errCode = EINVAL;\r
+            return;\r
+        }\r
+        g_dwWidth = (LONG)width;\r
+        g_dwHeight = (LONG)height;\r
+    }\r
+\r
+    param->stack[0] = width;\r
+    param->stack[1] = height;\r
+    param->stack[2] = 1; // V4L2_FIELD_NONE\r
+    param->stack[3] = pixfmt;\r
+    // bytes per line = (width * bpp) / 8\r
+    param->stack[4] = (width * supported_dst_pixfmts[pidx].bpp) >> 3;\r
+    param->stack[5] = param->stack[4] * height; // height * bytesperline\r
+    param->stack[6] = 0;\r
+    param->stack[7] = 0;\r
+\r
+    cur_frame_idx = fidx;\r
+    cur_fmt_idx = pidx;\r
+\r
+    TRACE("Set format...\n");\r
 }\r
 \r
 // MARUCAM_CMD_G_FMT\r
 void marucam_device_g_fmt(MaruCamState* state)\r
 {\r
-       MaruCamParam *param = state->param;\r
+    MaruCamParam *param = state->param;\r
 \r
-       param->top = 0;\r
+    param->top = 0;\r
 \r
-       param->stack[0] = supported_dst_frames[cur_frame_idx].width;    // width\r
-       param->stack[1] = supported_dst_frames[cur_frame_idx].height;   // height\r
-       param->stack[2] = 1; // V4L2_FIELD_NONE\r
-       param->stack[3] = supported_dst_pixfmts[cur_fmt_idx].fmt;       // pixelformat\r
-       // bytes per line = (width * bpp) / 8\r
-       param->stack[4] = (param->stack[0] * supported_dst_pixfmts[cur_fmt_idx].bpp) >> 3;\r
-       param->stack[5] = param->stack[1] * param->stack[4];    // height * bytesperline\r
-       param->stack[6] = 0;\r
-       param->stack[7] = 0;\r
+    param->stack[0] = supported_dst_frames[cur_frame_idx].width;    // width\r
+    param->stack[1] = supported_dst_frames[cur_frame_idx].height;   // height\r
+    param->stack[2] = 1; // V4L2_FIELD_NONE\r
+    param->stack[3] = supported_dst_pixfmts[cur_fmt_idx].fmt;   // pixelformat\r
+    // bytes per line = (width * bpp) / 8\r
+    param->stack[4] = (param->stack[0] * supported_dst_pixfmts[cur_fmt_idx].bpp) >> 3;\r
+    param->stack[5] = param->stack[1] * param->stack[4];    // height * bytesperline\r
+    param->stack[6] = 0;\r
+    param->stack[7] = 0;\r
 \r
-       TRACE("Get format...\n");\r
+    TRACE("Get format...\n");\r
 }\r
 \r
 void marucam_device_try_fmt(MaruCamState* state)\r
 {\r
-       uint32_t width, height, pixfmt, i;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       width = param->stack[0];                // width\r
-       height = param->stack[1];               // height\r
-       pixfmt = param->stack[2];               // pixelformat\r
-\r
-       for (i = 0; i < ARRAY_SIZE(supported_dst_frames); i++) {\r
-               if ((supported_dst_frames[i].width == width) &&\r
-                               (supported_dst_frames[i].height == height)) {\r
-                       break;\r
-               }\r
-       }\r
-       if (i == ARRAY_SIZE(supported_dst_frames)) {\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-       for (i = 0; i < ARRAY_SIZE(supported_dst_pixfmts); i++) {\r
-               if (supported_dst_pixfmts[i].fmt == pixfmt) {\r
-                       break;\r
-               }\r
-       }\r
-       if (i == ARRAY_SIZE(supported_dst_pixfmts)) {\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-\r
-       param->stack[0] = width;\r
-       param->stack[1] = height;\r
-       param->stack[2] = 1; // V4L2_FIELD_NONE\r
-       param->stack[3] = pixfmt;\r
-       // bytes per line = (width * bpp) / 8\r
-       param->stack[4] = (width * supported_dst_pixfmts[i].bpp) >> 3;\r
-       param->stack[5] = param->stack[4] * height;     // height * bytesperline\r
-       param->stack[6] = 0;\r
-       param->stack[7] = 0;\r
+    uint32_t width, height, pixfmt, i;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    width = param->stack[0];        // width\r
+    height = param->stack[1];       // height\r
+    pixfmt = param->stack[2];       // pixelformat\r
+\r
+    for (i = 0; i < ARRAY_SIZE(supported_dst_frames); i++) {\r
+        if ((supported_dst_frames[i].width == width) &&\r
+                (supported_dst_frames[i].height == height)) {\r
+            break;\r
+        }\r
+    }\r
+    if (i == ARRAY_SIZE(supported_dst_frames)) {\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+    for (i = 0; i < ARRAY_SIZE(supported_dst_pixfmts); i++) {\r
+        if (supported_dst_pixfmts[i].fmt == pixfmt) {\r
+            break;\r
+        }\r
+    }\r
+    if (i == ARRAY_SIZE(supported_dst_pixfmts)) {\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+\r
+    param->stack[0] = width;\r
+    param->stack[1] = height;\r
+    param->stack[2] = 1; // V4L2_FIELD_NONE\r
+    param->stack[3] = pixfmt;\r
+    // bytes per line = (width * bpp) / 8\r
+    param->stack[4] = (width * supported_dst_pixfmts[i].bpp) >> 3;\r
+    param->stack[5] = param->stack[4] * height; // height * bytesperline\r
+    param->stack[6] = 0;\r
+    param->stack[7] = 0;\r
 }\r
 \r
 void marucam_device_enum_fmt(MaruCamState* state)\r
 {\r
-       uint32_t index;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       index = param->stack[0];\r
-\r
-       if (index >= ARRAY_SIZE(supported_dst_pixfmts)) {\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-       param->stack[1] = 0;                                                    // flags = NONE;\r
-       param->stack[2] = supported_dst_pixfmts[index].fmt;     // pixelformat;\r
-       /* set description */\r
-       switch (supported_dst_pixfmts[index].fmt) {\r
-       case V4L2_PIX_FMT_YUYV:\r
-               memcpy(&param->stack[3], "YUY2", 32);\r
-               break;\r
-       case V4L2_PIX_FMT_YUV420:\r
-               memcpy(&param->stack[3], "YU12", 32);\r
-               break;\r
-       case V4L2_PIX_FMT_YVU420:\r
-               memcpy(&param->stack[3], "YV12", 32);\r
-               break;\r
-       }\r
+    uint32_t index;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    index = param->stack[0];\r
+\r
+    if (index >= ARRAY_SIZE(supported_dst_pixfmts)) {\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+    param->stack[1] = 0;                            // flags = NONE;\r
+    param->stack[2] = supported_dst_pixfmts[index].fmt; // pixelformat;\r
+    /* set description */\r
+    switch (supported_dst_pixfmts[index].fmt) {\r
+    case V4L2_PIX_FMT_YUYV:\r
+        memcpy(&param->stack[3], "YUY2", 32);\r
+        break;\r
+    case V4L2_PIX_FMT_YUV420:\r
+        memcpy(&param->stack[3], "YU12", 32);\r
+        break;\r
+    case V4L2_PIX_FMT_YVU420:\r
+        memcpy(&param->stack[3], "YV12", 32);\r
+        break;\r
+    }\r
 }\r
 \r
 void marucam_device_qctrl(MaruCamState* state)\r
 {\r
-       HRESULT hr;\r
-       uint32_t id, i;\r
-       long property, min, max, step, def_val, set_val;\r
-       char name[32] = {0,};\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       id = param->stack[0];\r
-\r
-       switch (id) {\r
-       case V4L2_CID_BRIGHTNESS:\r
-               TRACE("V4L2_CID_BRIGHTNESS\n");\r
-               property = VideoProcAmp_Brightness;\r
-               memcpy((void*)name, (void*)"brightness", 32);\r
-               i = 0;\r
-               break;\r
-       case V4L2_CID_CONTRAST:\r
-               TRACE("V4L2_CID_CONTRAST\n");\r
-               property = VideoProcAmp_Contrast;\r
-               memcpy((void*)name, (void*)"contrast", 32);\r
-               i = 1;\r
-               break;\r
-       case V4L2_CID_SATURATION:\r
-               TRACE("V4L2_CID_SATURATION\n");\r
-               property = VideoProcAmp_Saturation;\r
-               memcpy((void*)name, (void*)"saturation", 32);\r
-               i = 2;\r
-               break;\r
-       case V4L2_CID_SHARPNESS:\r
-               TRACE("V4L2_CID_SHARPNESS\n");\r
-               property = VideoProcAmp_Sharpness;\r
-               memcpy((void*)name, (void*)"sharpness", 32);\r
-               i = 3;\r
-               break;\r
-       default:\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-       hr = QueryVideoProcAmp(property, &min, &max, &step, &def_val);\r
-       if (FAILED(hr)) {\r
-               param->errCode = EINVAL;\r
-               ERR("failed to query video controls [HRESULT : 0x%x]\n", hr);\r
-               return;\r
-       } else {\r
-               qctrl_tbl[i].hit = 1;\r
-               qctrl_tbl[i].min = min;\r
-               qctrl_tbl[i].max = max;\r
-               qctrl_tbl[i].step = step;\r
-               qctrl_tbl[i].init_val = def_val;\r
-\r
-               if ((qctrl_tbl[i].min + qctrl_tbl[i].max) == 0) {\r
-                       set_val = 0;\r
-               } else {\r
-                       set_val = (qctrl_tbl[i].min + qctrl_tbl[i].max) / 2;\r
-               }\r
-               hr = SetVideoProcAmp(property, set_val);\r
-               if (FAILED(hr)) {\r
-                       param->errCode = EINVAL;\r
-                       ERR("failed to set video control value, [HRESULT : 0x%x]\n", hr);\r
-                       return;\r
-               }\r
-       }\r
-\r
-       param->stack[0] = id;\r
-       param->stack[1] = MARUCAM_CTRL_VALUE_MIN;       // minimum\r
-       param->stack[2] = MARUCAM_CTRL_VALUE_MAX;       // maximum\r
-       param->stack[3] = MARUCAM_CTRL_VALUE_STEP;// step\r
-       param->stack[4] = MARUCAM_CTRL_VALUE_MID;       // default_value\r
-       param->stack[5] = V4L2_CTRL_FLAG_SLIDER;\r
-       /* name field setting */\r
-       memcpy(&param->stack[6], (void*)name, sizeof(name)/sizeof(name[0]));\r
+    HRESULT hr;\r
+    uint32_t id, i;\r
+    long property, min, max, step, def_val, set_val;\r
+    char name[32] = {0,};\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    id = param->stack[0];\r
+\r
+    switch (id) {\r
+    case V4L2_CID_BRIGHTNESS:\r
+        TRACE("V4L2_CID_BRIGHTNESS\n");\r
+        property = VideoProcAmp_Brightness;\r
+        memcpy((void*)name, (void*)"brightness", 32);\r
+        i = 0;\r
+        break;\r
+    case V4L2_CID_CONTRAST:\r
+        TRACE("V4L2_CID_CONTRAST\n");\r
+        property = VideoProcAmp_Contrast;\r
+        memcpy((void*)name, (void*)"contrast", 32);\r
+        i = 1;\r
+        break;\r
+    case V4L2_CID_SATURATION:\r
+        TRACE("V4L2_CID_SATURATION\n");\r
+        property = VideoProcAmp_Saturation;\r
+        memcpy((void*)name, (void*)"saturation", 32);\r
+        i = 2;\r
+        break;\r
+    case V4L2_CID_SHARPNESS:\r
+        TRACE("V4L2_CID_SHARPNESS\n");\r
+        property = VideoProcAmp_Sharpness;\r
+        memcpy((void*)name, (void*)"sharpness", 32);\r
+        i = 3;\r
+        break;\r
+    default:\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+    hr = QueryVideoProcAmp(property, &min, &max, &step, &def_val);\r
+    if (FAILED(hr)) {\r
+        param->errCode = EINVAL;\r
+        ERR("failed to query video controls [HRESULT : 0x%x]\n", hr);\r
+        return;\r
+    } else {\r
+        qctrl_tbl[i].hit = 1;\r
+        qctrl_tbl[i].min = min;\r
+        qctrl_tbl[i].max = max;\r
+        qctrl_tbl[i].step = step;\r
+        qctrl_tbl[i].init_val = def_val;\r
+\r
+        if ((qctrl_tbl[i].min + qctrl_tbl[i].max) == 0) {\r
+            set_val = 0;\r
+        } else {\r
+            set_val = (qctrl_tbl[i].min + qctrl_tbl[i].max) / 2;\r
+        }\r
+        hr = SetVideoProcAmp(property, set_val);\r
+        if (FAILED(hr)) {\r
+            param->errCode = EINVAL;\r
+            ERR("failed to set video control value, [HRESULT : 0x%x]\n", hr);\r
+            return;\r
+        }\r
+    }\r
+\r
+    param->stack[0] = id;\r
+    param->stack[1] = MARUCAM_CTRL_VALUE_MIN;   // minimum\r
+    param->stack[2] = MARUCAM_CTRL_VALUE_MAX;   // maximum\r
+    param->stack[3] = MARUCAM_CTRL_VALUE_STEP;// step\r
+    param->stack[4] = MARUCAM_CTRL_VALUE_MID;   // default_value\r
+    param->stack[5] = V4L2_CTRL_FLAG_SLIDER;\r
+    /* name field setting */\r
+    memcpy(&param->stack[6], (void*)name, sizeof(name)/sizeof(name[0]));\r
 }\r
 \r
 void marucam_device_s_ctrl(MaruCamState* state)\r
 {\r
-       HRESULT hr;\r
-       uint32_t i;\r
-       long property, set_val;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-\r
-       switch (param->stack[0]) {\r
-       case V4L2_CID_BRIGHTNESS:\r
-               i = 0;\r
-               property = VideoProcAmp_Brightness;\r
-               break;\r
-       case V4L2_CID_CONTRAST:\r
-               i = 1;\r
-               property = VideoProcAmp_Contrast;\r
-               break;\r
-       case V4L2_CID_SATURATION:\r
-               i = 2;\r
-               property = VideoProcAmp_Saturation;\r
-               break;\r
-       case V4L2_CID_SHARPNESS:\r
-               i = 3;\r
-               property = VideoProcAmp_Sharpness;\r
-               break;\r
-       default:\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-       set_val = value_convert_from_guest(qctrl_tbl[i].min,\r
-                       qctrl_tbl[i].max, (long)param->stack[1]);\r
-       hr = SetVideoProcAmp(property, set_val);\r
-       if (FAILED(hr)) {\r
-               param->errCode = EINVAL;\r
-               ERR("failed to set video control value, [HRESULT : 0x%x]\n", hr);\r
-               return;\r
-       }\r
+    HRESULT hr;\r
+    uint32_t i;\r
+    long property, set_val;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+\r
+    switch (param->stack[0]) {\r
+    case V4L2_CID_BRIGHTNESS:\r
+        i = 0;\r
+        property = VideoProcAmp_Brightness;\r
+        break;\r
+    case V4L2_CID_CONTRAST:\r
+        i = 1;\r
+        property = VideoProcAmp_Contrast;\r
+        break;\r
+    case V4L2_CID_SATURATION:\r
+        i = 2;\r
+        property = VideoProcAmp_Saturation;\r
+        break;\r
+    case V4L2_CID_SHARPNESS:\r
+        i = 3;\r
+        property = VideoProcAmp_Sharpness;\r
+        break;\r
+    default:\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+    set_val = value_convert_from_guest(qctrl_tbl[i].min,\r
+            qctrl_tbl[i].max, (long)param->stack[1]);\r
+    hr = SetVideoProcAmp(property, set_val);\r
+    if (FAILED(hr)) {\r
+        param->errCode = EINVAL;\r
+        ERR("failed to set video control value, [HRESULT : 0x%x]\n", hr);\r
+        return;\r
+    }\r
 }\r
 \r
 void marucam_device_g_ctrl(MaruCamState* state)\r
 {\r
-       HRESULT hr;\r
-       uint32_t i;\r
-       long property, get_val;\r
-       MaruCamParam *param = state->param;\r
-\r
-       param->top = 0;\r
-       switch (param->stack[0]) {\r
-       case V4L2_CID_BRIGHTNESS:\r
-               i = 0;\r
-               property = VideoProcAmp_Brightness;\r
-               break;\r
-       case V4L2_CID_CONTRAST:\r
-               i = 1;\r
-               property = VideoProcAmp_Contrast;\r
-               break;\r
-       case V4L2_CID_SATURATION:\r
-               i = 2;\r
-               property = VideoProcAmp_Saturation;\r
-               break;\r
-       case V4L2_CID_SHARPNESS:\r
-               i = 3;\r
-               property = VideoProcAmp_Sharpness;\r
-               break;\r
-       default:\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-\r
-       hr = GetVideoProcAmp(property, &get_val);\r
-       if (FAILED(hr)) {\r
-               param->errCode = EINVAL;\r
-               ERR("failed to get video control value!!!, [HRESULT : 0x%x]\n", hr);\r
-               return;\r
-       }\r
-       param->stack[0] = (uint32_t)value_convert_to_guest(qctrl_tbl[i].min,\r
-                               qctrl_tbl[i].max, get_val);\r
+    HRESULT hr;\r
+    uint32_t i;\r
+    long property, get_val;\r
+    MaruCamParam *param = state->param;\r
+\r
+    param->top = 0;\r
+    switch (param->stack[0]) {\r
+    case V4L2_CID_BRIGHTNESS:\r
+        i = 0;\r
+        property = VideoProcAmp_Brightness;\r
+        break;\r
+    case V4L2_CID_CONTRAST:\r
+        i = 1;\r
+        property = VideoProcAmp_Contrast;\r
+        break;\r
+    case V4L2_CID_SATURATION:\r
+        i = 2;\r
+        property = VideoProcAmp_Saturation;\r
+        break;\r
+    case V4L2_CID_SHARPNESS:\r
+        i = 3;\r
+        property = VideoProcAmp_Sharpness;\r
+        break;\r
+    default:\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+\r
+    hr = GetVideoProcAmp(property, &get_val);\r
+    if (FAILED(hr)) {\r
+        param->errCode = EINVAL;\r
+        ERR("failed to get video control value!!!, [HRESULT : 0x%x]\n", hr);\r
+        return;\r
+    }\r
+    param->stack[0] = (uint32_t)value_convert_to_guest(qctrl_tbl[i].min,\r
+                qctrl_tbl[i].max, get_val);\r
 }\r
 \r
 void marucam_device_enum_fsizes(MaruCamState* state)\r
 {\r
-       uint32_t index, pixfmt, i;\r
-       MaruCamParam *param = state->param;\r
+    uint32_t index, pixfmt, i;\r
+    MaruCamParam *param = state->param;\r
 \r
-       param->top = 0;\r
-       index = param->stack[0];\r
-       pixfmt = param->stack[1];\r
+    param->top = 0;\r
+    index = param->stack[0];\r
+    pixfmt = param->stack[1];\r
 \r
-       if (index >= ARRAY_SIZE(supported_dst_frames)) {\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-       for (i = 0; i < ARRAY_SIZE(supported_dst_pixfmts); i++) {\r
-               if (supported_dst_pixfmts[i].fmt == pixfmt)\r
-                       break;\r
-       }\r
+    if (index >= ARRAY_SIZE(supported_dst_frames)) {\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+    for (i = 0; i < ARRAY_SIZE(supported_dst_pixfmts); i++) {\r
+        if (supported_dst_pixfmts[i].fmt == pixfmt)\r
+            break;\r
+    }\r
 \r
-       if (i == ARRAY_SIZE(supported_dst_pixfmts)) {\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
+    if (i == ARRAY_SIZE(supported_dst_pixfmts)) {\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
 \r
-       param->stack[0] = supported_dst_frames[index].width;\r
-       param->stack[1] = supported_dst_frames[index].height;\r
+    param->stack[0] = supported_dst_frames[index].width;\r
+    param->stack[1] = supported_dst_frames[index].height;\r
 }\r
 \r
 void marucam_device_enum_fintv(MaruCamState* state)\r
 {\r
-       MaruCamParam *param = state->param;\r
+    MaruCamParam *param = state->param;\r
 \r
-       param->top = 0;\r
+    param->top = 0;\r
 \r
-       // switch by index(param->stack[0])\r
-       switch (param->stack[0]) {\r
-       case 0:\r
-               param->stack[1] = 30;   // denominator\r
-               break;\r
-       default:\r
-               param->errCode = EINVAL;\r
-               return;\r
-       }\r
-       param->stack[0] = 1;    // numerator\r
+    // switch by index(param->stack[0])\r
+    switch (param->stack[0]) {\r
+    case 0:\r
+        param->stack[1] = 30;   // denominator\r
+        break;\r
+    default:\r
+        param->errCode = EINVAL;\r
+        return;\r
+    }\r
+    param->stack[0] = 1;    // numerator\r
 }\r
 \r
 void v4lconvert_yuyv_to_yuv420(const unsigned char *src, unsigned char *dest,\r
-               uint32_t width, uint32_t height, uint32_t yvu)\r
-{\r
-       uint32_t i, j;\r
-       const unsigned char *src1;\r
-       unsigned char *udest, *vdest;\r
-\r
-       /* copy the Y values */\r
-       src1 = src;\r
-       for (i = 0; i < height; i++) {\r
-               for (j = 0; j < width; j += 2) {\r
-                       *dest++ = src1[0];\r
-                       *dest++ = src1[2];\r
-                       src1 += 4;\r
-               }\r
-       }\r
-\r
-       /* copy the U and V values */\r
-       src++;                          /* point to V */\r
-       src1 = src + width * 2;         /* next line */\r
-       if (yvu) {\r
-               vdest = dest;\r
-               udest = dest + width * height / 4;\r
-       } else {\r
-               udest = dest;\r
-               vdest = dest + width * height / 4;\r
-       }\r
-       for (i = 0; i < height; i += 2) {\r
-               for (j = 0; j < width; j += 2) {\r
-                       *udest++ = ((int) src[0] + src1[0]) / 2;        /* U */\r
-                       *vdest++ = ((int) src[2] + src1[2]) / 2;        /* V */\r
-                       src += 4;\r
-                       src1 += 4;\r
-               }\r
-               src = src1;\r
-               src1 += width * 2;\r
-       }\r
+        uint32_t width, uint32_t height, uint32_t yvu)\r
+{\r
+    uint32_t i, j;\r
+    const unsigned char *src1;\r
+    unsigned char *udest, *vdest;\r
+\r
+    /* copy the Y values */\r
+    src1 = src;\r
+    for (i = 0; i < height; i++) {\r
+        for (j = 0; j < width; j += 2) {\r
+            *dest++ = src1[0];\r
+            *dest++ = src1[2];\r
+            src1 += 4;\r
+        }\r
+    }\r
+\r
+    /* copy the U and V values */\r
+    src++;              /* point to V */\r
+    src1 = src + width * 2;     /* next line */\r
+    if (yvu) {\r
+        vdest = dest;\r
+        udest = dest + width * height / 4;\r
+    } else {\r
+        udest = dest;\r
+        vdest = dest + width * height / 4;\r
+    }\r
+    for (i = 0; i < height; i += 2) {\r
+        for (j = 0; j < width; j += 2) {\r
+            *udest++ = ((int) src[0] + src1[0]) / 2;    /* U */\r
+            *vdest++ = ((int) src[2] + src1[2]) / 2;    /* V */\r
+            src += 4;\r
+            src1 += 4;\r
+        }\r
+        src = src1;\r
+        src1 += width * 2;\r
+    }\r
 }\r