Skip to content

mediadevices.EnumerateDevices() Label vs. Name #593

@stblassitude

Description

@stblassitude

Your environment.

  • Version: master
  • Browser: n/a
  • Other Information - macOS Sequoia

What did you do?

func ListInputs() {
	devices := mediadevices.EnumerateDevices()
	sort.Sort(ByLabel(devices))
	fmt.Printf("Available inputs:\n")
	for i, v := range devices {
		l, _ := hex.DecodeString(v.Label)
		fmt.Printf("%d: %s:\t%s\t%s\n", i, v.DeviceID, l, v.Name)
	}
}

What did you expect?

I would expect the list of devices to include the name as displayed in all other apps. Instead, only the Label field is provided, which ranges from cryptic to unusable, as it is filled with just a UUID.

Either a Name property should be added to MediaDeviceInfo and filled with driverInfo.Name, or the Label field should be set to that value instead of the Label.

Example output:

Available inputs:
0: a211d286-f5cd-4916-9680-7ec0b38bbc97:        81BC3609-243C-4519-AEB7-42D100000003    Stefans 15 Microphone
1: 984069d3-dafd-44db-bdf6-f1560daf0d1d:        AppleUSBAudioEngine:Focusrite:Scarlett 6i6 USB:1000712D:1,2     Scarlett 6i6 USB
2: f7a59270-005e-4c45-a39e-5f23e08518ed:        AppleUSBAudioEngine:LG Electronics Inc.:USB Audio:3141000:1     LG UltraFine Display Audio
3: 1b00547e-cbcd-4ac7-a588-5927d3637aa9:        BlackHole2ch_UID        BlackHole 2ch
4: d08f2a83-07be-4a9c-9d9d-cbe66a9f803b:        BuiltInMicrophoneDevice MacBook Pro-Mikrofon
5: f15f3d56-0f76-4555-878f-ec271a826b87:        MSLoopbackDriverDevice_UID      Microsoft Teams Audio
6: 7d07b8d3-a9c5-4eec-bcf3-de77651295e9:        NMAudioDevice_UID       NoMachine Audio Adapter
7: 03592982-1ec4-4770-ba23-791895a188a7:        NMAudioMicDevice_UID    NoMachine Microphone Adapter
8: beb30aab-4a82-4f85-9336-c17d65f0cb2a:        VirtualMicInputOutput:01        EpocCam Microphone
9: 1c0ad447-c1e0-4917-b23c-adcebb81e175:        com.rogueamoeba.Loopback:0643181C-AA82-4537-A974-29CE469A1F1E   Test7
10: 256cbaf4-4bdb-4b5f-b733-10837e2ee988:       com.rogueamoeba.Loopback:419A1950-759D-4E69-8F2C-F1FB7DAC5059   Test2
11: 97836d13-6869-4a61-8656-aaa50d49f265:       com.rogueamoeba.Loopback:465760EA-A391-437F-8815-3344B6EEAC09   Test3
12: cc13d65e-0354-4eff-92b4-b6e957938860:       com.rogueamoeba.Loopback:49BF7858-5C42-4A73-A81C-877D6464649B   Test13
13: fa33bab8-8432-4066-9ce6-197bfc288880:       com.rogueamoeba.Loopback:5072F0BE-11CB-4D40-8772-2BB944A2DC11   Test8
14: 4b6dd357-bb1d-47e0-93e8-312c0d895d63:       com.rogueamoeba.Loopback:6A40E194-8F37-4E3F-9BAF-D4554C14F690   Test6
15: 8e53092f-23cc-49d1-9261-38484385a5a4:       com.rogueamoeba.Loopback:8530082B-4B99-44A6-AEEA-23E9F5981BE6   Test12
16: 3ac510a8-2f46-404a-99fd-ac4daf6cd1c9:       com.rogueamoeba.Loopback:89B22D98-AA43-4325-BE2C-E67D5C404128   Test9
17: a5dcb197-3c64-4676-9a37-85ad9451206e:       com.rogueamoeba.Loopback:ACC43168-0458-44A9-8383-CBC0AC7A0EA9   Test11
18: dd6bf5f2-4513-49b0-9169-64a3f53a621f:       com.rogueamoeba.Loopback:BF2D9751-0B04-4DDE-9BDB-0D60637372AB   Test1
19: 3ca970cc-acb0-4c91-940e-0158237625f7:       com.rogueamoeba.Loopback:D7F2799C-76DA-4B4D-9EDF-9615644F8F94   Test5
20: 35ff1fbf-12df-45b8-94f6-eba10a986a03:       com.rogueamoeba.Loopback:E5133490-0463-488C-87A3-297224C7D1D4   Test10
21: cb843625-141b-441d-90cc-511a028d961e:       com.rogueamoeba.Loopback:E9BC1B6F-00BC-4C4E-9AE5-F5DDF6739507   Test4

You can see that the Rogue Amoeba Loopback inputs without the Name are impossible to identify.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions