summaryrefslogtreecommitdiffstats
path: root/libavdevice
diff options
context:
space:
mode:
authorrogerdpack <rogerpack2005@gmail.com>2015-01-26 01:29:58 -0700
committerrogerdpack <rogerpack2005@gmail.com>2015-01-26 01:29:58 -0700
commit7c2e26270124fc81babcfc7b9d070bb8bd8ab6fa (patch)
treeff38fc866de8cf8a8ccea2172c2cf09ccd442c61 /libavdevice
parentce1bbb08f127ecb724c2c62791cad70c30dd270b (diff)
downloadffmpeg-streaming-7c2e26270124fc81babcfc7b9d070bb8bd8ab6fa.zip
ffmpeg-streaming-7c2e26270124fc81babcfc7b9d070bb8bd8ab6fa.tar.gz
dshow: crossbar dialog was frequently being displayed twice, split up option so it can be just once
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Diffstat (limited to 'libavdevice')
-rw-r--r--libavdevice/dshow.c9
-rw-r--r--libavdevice/dshow_capture.h3
-rw-r--r--libavdevice/dshow_crossbar.c3
3 files changed, 10 insertions, 5 deletions
diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c
index d881bfa..9ca2519 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 11ab23c..f258476 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 e3012df..c0739da 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;
OpenPOWER on IntegriCloud