Closed fossfreedom closed 9 years ago
mhh sounds not like I would solve in some minutes (quitting for today)... Can you tell me on which distribution you tested? I tested on Ubuntu 14.04 and 15.04. I assume it is some GTK incompatibility in my provided .glade file... There is just one place where I use radio buttons so at least this shall be fast :)
its ubuntu 14.04 running Unity in virtualbox
strange that this never was hanging form me. But it was good for something: I did some cleanup and looks all a bit better now during start up. The least this will do is to give a bit more info about why it would hang as the volume monitoring got removed. Can you please try again with latest main sources?
dad:~/.../plugins/DRC$rhythmbox -D DRC
(rhythmbox:14211): Gtk-CRITICAL **: gtk_css_provider_load_from_path: assertion 'path != NULL' failed
(rhythmbox:14211): Gtk-CRITICAL **: gtk_box_pack: assertion 'gtk_widget_get_parent (child) == NULL' failed
(22:37:35) [0x2190b90] [LoadAudioFile] DRCFileTool.py:331: ext =
(22:37:35) [0x2190b90] [LoadRawFile] DRCFileTool.py:251: numChanels :
(22:37:35) [0x2190b90] [LoadRawFile] DRCFileTool.py:251:
(22:37:35) [0x2190b90] [LoadRawFile] DRCFileTool.py:251: 1
(22:37:35) [0x2190b90] [DRCPlugin.updateFilter] DRC.py:134: error updating filter
(22:37:35) [0x2190b90] [DRCPlugin.updateFilter] DRC.py:134:
(22:37:35) [0x2190b90] [DRCPlugin.updateFilter] DRC.py:134: <class 'FileNotFoundError'>
(22:37:35) [0x2190b90] [DRCPlugin.updateFilter] DRC.py:134:
(22:37:35) [0x2190b90] [DRCPlugin.updateFilter] DRC.py:134: <class 'FileNotFoundError'>
(22:37:35) [0x2190b90] [DRCPlugin.updateFilter] DRC.py:134:
(22:37:35) [0x2190b90] [DRCPlugin.updateFilter] DRC.py:134: [Errno 2] No such file or directory: 'None'
(22:37:35) [0x2190b90] [DRCPlugin.add_ui] DRC.py:204: starting add_ui
(22:37:35) [0x2190b90] [DRCPlugin.add_ui] DRC.py:212: add_ui done
(22:37:40) [0x2190b90] [DRCDlg.show_ui] DRCUi.py:1015: showing UI
(rhythmbox:14211): Gtk-WARNING **: gtk_file_chooser_button_set_property: Choosers of type `GtkFileChooserButton' do not support `GTK_FILE_CHOOSER_ACTION_SAVE'.
(rhythmbox:14211): Gtk-CRITICAL **: gtk_radio_button_set_group: assertion '!g_slist_find (group, radio_button)' failed
(22:37:40) [0x2190b90] [getDeviceListFromAlsaOutput] DRCUi.py:317: found pattern : [('0', 'Ensoniq AudioPCI', '0', 'ES1371 DAC2/ADC'), ('0', 'Ensoniq AudioPCI', '1', 'ES1371 DAC1')]
(22:37:40) [0x2190b90] [getDeviceListFromAlsaOutput] DRCUi.py:317: found pattern : [('0', 'Ensoniq AudioPCI', '0', 'ES1371 DAC2/ADC')]
(22:37:40) [0x2190b90] [DRCDlg.getAlsaRecordHardwareString] DRCUi.py:730: alsa input device : hw:0,0
I presume some-sort of dialog is supposed to appear - I dont see it though. Certainly doesnt get down to the "print( "done showing UI" )" statement.
EDIT:
debugging - gets stuck at this line in getrecodingdeviceinfo
out, err = p.communicate()
ok, another proof to better RTFM... Seems it just worked by accident initially!!! No idea why or how it worked for me at all!!! The parameters for the subproces.Popen were completely wrong it seems (must admit I just blindly trusted and copied somewhere... and stopped in the "it works" state). Fixed it now + introduced some more debug output - in case this was still not the issue.
remind me to do some more testing this weekend. It shall not affect other functionality. I fixed this handling in multiple places now.
hmm - no joy:
(23:33:22) [0x888b90] [DRCPlugin.updateFilter] DRC.py:134:
(23:33:22) [0x888b90] [DRCPlugin.updateFilter] DRC.py:134: [Errno 2] No such file or directory: 'None'
(23:33:22) [0x888b90] [DRCPlugin.add_ui] DRC.py:204: starting add_ui
(23:33:22) [0x888b90] [DRCPlugin.add_ui] DRC.py:212: add_ui done
(rhythmbox:15818): Gtk-CRITICAL **: gtk_size_group_remove_widget: assertion 'g_slist_find (priv->widgets, widget)' failed
(rhythmbox:15818): Gtk-CRITICAL **: gtk_size_group_remove_widget: assertion 'g_slist_find (priv->widgets, widget)' failed
(23:33:27) [0x888b90] [DRCDlg.show_ui] DRCUi.py:1019: showing UI
(rhythmbox:15818): Gtk-WARNING **: gtk_file_chooser_button_set_property: Choosers of type `GtkFileChooserButton' do not support `GTK_FILE_CHOOSER_ACTION_SAVE'.
(rhythmbox:15818): Gtk-CRITICAL **: gtk_radio_button_set_group: assertion '!g_slist_find (group, radio_button)' failed
(23:33:27) [0x888b90] [getDeviceListFromAlsaOutput] DRCUi.py:317: found pattern : [('0', 'Ensoniq AudioPCI', '0', 'ES1371 DAC2/ADC'), ('0', 'Ensoniq AudioPCI', '1', 'ES1371 DAC1')]
(23:33:27) [0x888b90] [getDeviceListFromAlsaOutput] DRCUi.py:317: found pattern : [('0', 'Ensoniq AudioPCI', '0', 'ES1371 DAC2/ADC')]
(23:33:27) [0x888b90] [DRCDlg.getAlsaRecordHardwareString] DRCUi.py:734: alsa input device : hw:0,0
(23:33:27) [0x888b90] [DRCDlg.getRecordingDeviceInfo] DRCUi.py:508: executing: ['arecord', '-D', 'hw:0,0', '--dump-hw-params']
so I ran arecord -D hw:0,0 --dump-hw-params
and this began with some tracing and then scrolled to a black screen and didnt return until I killed the process:
dad:~/.../plugins/DRC$arecord -D hw:0,0 --dump-hw-params
Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw:0,0":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: U8 S16_LE
SUBFORMAT: STD
SAMPLE_BITS: [8 16]
FRAME_BITS: [8 32]
CHANNELS: [1 2]
RATE: [4000 48000]
PERIOD_TIME: (333 16384000]
PERIOD_SIZE: [16 65536]
PERIOD_BYTES: [64 131072]
PERIODS: [1 1024]
BUFFER_TIME: (333 16384000]
BUFFER_SIZE: [16 65536]
BUFFER_BYTES: [64 65536]
TICK_TIME: ALL
--------------------
RIFF$�WAVEfmt @@data�
think this may be the issue - you probably need a test .wav file
cool, so now we have a way to reproduce without the need of blindly changing in my code :). I discovered a nice parameter which sounded like it could do what we need:
arecord -D hw:0,0 --dump-hw-params -q
that seems not to start a temporary recording... Ok, can't really tell whether it fixes the hanging as even without -q it worked for me... Could you please try?
-q didnt do anything
however "-d 1" returned back to a prompt after 1 second.
ok, added it now with additional "-d 1". Works for me - which seems not to mean much.... Curious to hear ... hopefully not just where it hangs next :) ....
moving forward:
line 292 you need to comment out/remove "mode = recDeviceInfo[1][0]" because it throws an subscript error because no "mode" was extracted
(22:38:32) [0x1c61040] [DRCDlg.getRecordingDeviceInfo] DRCUi.py:511: hw infos : err : b'Recording WAVE \'stdin\' : Unsigned 8 bit, Rate 8000 Hz, Mono\nHW Params of device "hw:0,0":\n--------------------\nACCESS: MMAP_INTERLEAVED RW_INTERLEAVED\nFORMAT: U8 S16_LE\nSUBFORMAT: STD\nSAMPLE_BITS: [8 16]\nFRAME_BITS: [8 32]\nCHANNELS: [1 2]\nRATE: [4000 48000]\nPERIOD_TIME: (333 16384000]\nPERIOD_SIZE: [16 65536]\nPERIOD_BYTES: [64 131072]\nPERIODS: [1 1024]\nBUFFER_TIME: (333 16384000]\nBUFFER_SIZE: [16 65536]\nBUFFER_BYTES: [64 65536]\nTICK_TIME: ALL\n--------------------\n' out : b'RIFFd\x1f\x00\x00WAVEfmt \x10\x00\x00\x00\x01\x00\x01\x00@\x1f\x00\x00@\x1f\x00\x00\x01\x00\x08\x00data@\x1f\x00\x00\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"
(22:38:32) [0x1c61040] [DRCDlg.getRecordingDeviceInfo] DRCUi.py:524: numChannels : ['1', '2']
(22:38:32) [0x1c61040] [DRCDlg.getRecordingDeviceInfo] DRCUi.py:525: supportedModes : []
(22:38:32) [0x1c61040] [DRCDlg.getRecordingDeviceInfo] DRCUi.py:526: No. supported Modes : 0
(22:38:32) [0x1c61040] [DRCDlg.updateRecDeviceInfo] DRCUi.py:575: [['1', '2'], []]
added some better error handling now for that case. And additionally also improved the audio format parsing to a more generic way. Fortunately you pasted your output above - some more data points :)
moving forward.
Now when I choose tools-drc the application goes black - basically it freezes.
From the terminal I see this:
last few lines of running rhythmbox -D DRC
running via rhythmbox -d I see this: