diff options
-rw-r--r-- | doc/indevs.texi | 9 | ||||
-rw-r--r-- | libavdevice/dshow.c | 9 | ||||
-rw-r--r-- | libavdevice/dshow_capture.h | 3 | ||||
-rw-r--r-- | libavdevice/dshow_crossbar.c | 3 |
4 files changed, 17 insertions, 7 deletions
diff --git a/doc/indevs.texi b/doc/indevs.texi index a35c7a65e4..ae61331a6f 100644 --- a/doc/indevs.texi +++ b/doc/indevs.texi @@ -255,10 +255,15 @@ If set to @option{true}, before capture starts, popup a display dialog to the end user, allowing them to change audio filter properties and configurations manually. -@item show_crossbar_connection_dialog +@item show_video_crossbar_connection_dialog If set to @option{true}, before capture starts, popup a display dialog to the end user, allowing them to manually -modify crossbar pin routings. +modify crossbar pin routings, when it opens a video device. + +@item show_audio_crossbar_connection_dialog +If set to @option{true}, before capture starts, popup a display +dialog to the end user, allowing them to manually +modify crossbar pin routings, when it opens an audio device. @item show_analog_tv_tuner_dialog If set to @option{true}, before capture starts, popup a display diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c index d881bfa522..9ca2519dd7 100644 --- a/libavdevice/dshow.c +++ b/libavdevice/dshow.c @@ -1199,9 +1199,12 @@ static const AVOption options[] = { { "show_audio_device_dialog", "display property dialog for audio capture device", OFFSET(show_audio_device_dialog), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, DEC, "show_audio_device_dialog" }, { "true", "", 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, DEC, "show_audio_device_dialog" }, { "false", "", 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, DEC, "show_audio_device_dialog" }, - { "show_crossbar_connection_dialog", "display property dialog for crossbar connecting pins filter", OFFSET(show_crossbar_connection_dialog), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, DEC, "show_crossbar_connection_dialog" }, - { "true", "", 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, DEC, "show_crossbar_connection_dialog" }, - { "false", "", 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, DEC, "show_crossbar_connection_dialog" }, + { "show_video_crossbar_connection_dialog", "display property dialog for crossbar connecting pins filter on video device", OFFSET(show_video_crossbar_connection_dialog), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, DEC, "show_video_crossbar_connection_dialog" }, + { "true", "", 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, DEC, "show_video_crossbar_connection_dialog" }, + { "false", "", 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, DEC, "show_video_crossbar_connection_dialog" }, + { "show_audio_crossbar_connection_dialog", "display property dialog for crossbar connecting pins filter on audio device", OFFSET(show_audio_crossbar_connection_dialog), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, DEC, "show_audio_crossbar_connection_dialog" }, + { "true", "", 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, DEC, "show_audio_crossbar_connection_dialog" }, + { "false", "", 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, DEC, "show_audio_crossbar_connection_dialog" }, { "show_analog_tv_tuner_dialog", "display property dialog for analog tuner filter", OFFSET(show_analog_tv_tuner_dialog), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, DEC, "show_analog_tv_tuner_dialog" }, { "true", "", 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, DEC, "show_analog_tv_tuner_dialog" }, { "false", "", 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, DEC, "show_analog_tv_tuner_dialog" }, diff --git a/libavdevice/dshow_capture.h b/libavdevice/dshow_capture.h index 11ab23c7e9..f258476099 100644 --- a/libavdevice/dshow_capture.h +++ b/libavdevice/dshow_capture.h @@ -303,7 +303,8 @@ struct dshow_ctx { char *audio_pin_name; int show_video_device_dialog; int show_audio_device_dialog; - int show_crossbar_connection_dialog; + int show_video_crossbar_connection_dialog; + int show_audio_crossbar_connection_dialog; int show_analog_tv_tuner_dialog; int show_analog_tv_tuner_audio_dialog; diff --git a/libavdevice/dshow_crossbar.c b/libavdevice/dshow_crossbar.c index e3012dfe17..c0739da318 100644 --- a/libavdevice/dshow_crossbar.c +++ b/libavdevice/dshow_crossbar.c @@ -158,7 +158,8 @@ dshow_try_setup_crossbar_options(ICaptureGraphBuilder2 *graph_builder2, } /* TODO some TV tuners apparently have multiple crossbars? */ - if (ctx->show_crossbar_connection_dialog) { + if (devtype == VideoDevice && ctx->show_video_crossbar_connection_dialog || + devtype == AudioDevice && ctx->show_audio_crossbar_connection_dialog) { hr = IAMCrossbar_QueryInterface(cross_bar, &IID_IBaseFilter, (void **) &cross_bar_base_filter); if (hr != S_OK) goto end; |