gst-play: Add support for audio mute control
authorSeungha Yang <seungha@centricular.com>
Wed, 27 May 2020 14:20:25 +0000 (23:20 +0900)
committerSeungha Yang <seungha@centricular.com>
Thu, 29 Oct 2020 16:32:31 +0000 (01:32 +0900)
Assign 'm' keyboard input to control audio mute state

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/674>

tools/gst-play.c

index 4bd0a26..1222653 100644 (file)
@@ -313,6 +313,23 @@ play_set_relative_volume (GstPlay * play, gdouble volume_step)
   gst_print ("                  \n");
 }
 
+static void
+play_toggle_audio_mute (GstPlay * play)
+{
+  gboolean mute;
+
+  mute = gst_stream_volume_get_mute (GST_STREAM_VOLUME (play->playbin));
+
+  mute = !mute;
+  gst_stream_volume_set_mute (GST_STREAM_VOLUME (play->playbin), mute);
+
+  if (mute)
+    gst_print (_("Mute: on"));
+  else
+    gst_print (_("Mute: off"));
+  gst_print ("                  \n");
+}
+
 /* returns TRUE if something was installed and we should restart playback */
 static gboolean
 play_install_missing_plugins (GstPlay * play)
@@ -1316,6 +1333,7 @@ print_keyboard_help (void)
     "\342\206\220", N_("seek backward")}, {
     "\342\206\221", N_("volume up")}, {
     "\342\206\223", N_("volume down")}, {
+    "m", N_("toggle audio mute on/off")}, {
     "+", N_("increase playback rate")}, {
     "-", N_("decrease playback rate")}, {
     "d", N_("change playback direction")}, {
@@ -1419,6 +1437,9 @@ keyboard_cb (const gchar * key_input, gpointer user_data)
     case '0':
       play_do_seek (play, 0, play->rate, play->trick_mode);
       break;
+    case 'm':
+      play_toggle_audio_mute (play);
+      break;
     default:
       if (strcmp (key_input, GST_PLAY_KB_ARROW_RIGHT) == 0) {
         relative_seek (play, +0.08);