Как освободить PCM на gstalsasrc.c, когда он остановился? - PullRequest
0 голосов
/ 08 октября 2018

Когда приложение AudioRecorder приостановлено, источник gstreamer alsa по-прежнему открыт PCM.

Я пытался вызвать unprepare, закрыть, когда состояние PLAYING_TO_PAUSED.

gst_alsasrc_change_state ()

.,.

case GST_STATE_CHANGE_PLAYING_TO_PAUSED:

 gst_alsasrc_unprepare(alsa);
 gst_alsasrc_close(alsa);

.,.

, но gstreamer по-прежнему вызывает snd_pcm_readi (), как показано ниже

/ alsa-lib / 1.0.29-r0 / alsa-lib-1.0.29 / src / pcm/pcm.c:1318:snd_pcm_readi: ошибка alsalib: PCM не настроен /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: восстановление xrun -5:Неизвестная ошибка -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: ошибка alsalib: PCM не настроен /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: восстановление xrun -5: неизвестная ошибка -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: ошибка alsalib: PCM не настроен /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: восстановление xrun -5: неизвестная ошибка -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: ошибка alsalib: PCM не настроен /gstreamer1.0-plugins-base / 1.2.4-r0 / git / ext / alsa / gstalsasrc.c: 988: xrun_recovery: восстановление xrun -5: неизвестная ошибка -5

Как освободить PCM в gstalsasrc.c, когда он остановился?

Вот журнал

/gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:1102:gst_alsasrc_read: gst_alsasrc_read() /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:1102:gst_alsasrc_read: gst_alsasrc_read() /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:251:gst_alsasrc_change_state: GST_STATE_CHANGE_PLAYING_TO_PAUSED /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:258:gst_alsasrc_change_state: call unprepare /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:917:gst_alsasrc_unprepare: gst_alsasrc_unprepare() /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:933:gst_alsasrc_unprepare: gst_alsasrc_unprepare() done /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:261:gst_alsasrc_change_state: call close /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: alsalib error: PCM not set up systemd[1]: app-logic-voicerecorder.service: main process exited, code=killed, status=6/ABRT /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: xrun recovery -5: Unknown error -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: alsalib error: PCM not set up . . . systemd[1]: Unit app-logic-voicerecorder.service entered failed state. /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: xrun recovery -5: Unknown error -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: alsalib error: PCM not set up /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: xrun recovery -5: Unknown error -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: alsalib error: PCM not set up /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:941:gst_alsasrc_close: gst_alsasrc_close() /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:957:gst_alsasrc_close: gst_alsasrc_close() call snd_pcm_close() /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: xrun recovery -5: Unknown error -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: alsalib error: PCM not set up /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: xrun recovery -5: Unknown error -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: alsalib error: PCM not set up /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: xrun recovery -5: Unknown error -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: alsalib error: PCM not set up /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery: xrun recovery -5: Unknown error -5 /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:977:gst_alsasrc_close: gst_alsasrc_close() done /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:263:gst_alsasrc_change_state: set isPCMOpened = FALSE /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1318:snd_pcm_readi: alsalib error: PCM not set up /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:990: snd_pcm_delay: Assertion <code>pcm' failed. /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:988:xrun_recovery:<alsasrc0> xrun recovery -5: Unknown error -5 /alsa-lib/1.0.29-r0/alsa-lib-1.0.29/src/pcm/pcm.c:1315: snd_pcm_readi: Assertion pcm 'не удалось.start-stop-daemon [831]: не найден работающий / usr / bin / app-logic-voicerecorder;никто не убит./gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsaplugin.c:71:plugin_init: привязка текстового домена gst-plugins-base-1.0 к локали dir / usr / share / locale / gstreamer1.0-plugins-base / 1.2.4-r0 / git / ext / alsa / gstalsaplugin.c: 71: plugin_init: привязка текстового домена gst-plugins-base-1.0 к локали dir / usr / share / locale /gstreamer1.0-plugins-base / 1.2.4-r0 / git / ext / alsa / gstalsasink.c: 357: gst_alsasink_init: gst_alsasink_init () /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c: 361: gst_alsasrc_init: gst_alsasrc_init /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:382:gst_alsasrc_getcaps: gst_alsasrc_getrins-st-plug-stgp_reg-r0 / git / ext / alsa / gstalsasrc.c: 386: gst_alsasrc_getcaps: устройство не открыто, используется шаблон caps /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:382: gst_alsasrc_getcaps: gst_alsasrc_getcaps /gstreamer1.0-plugins-base/1.2.4-r0/git/ext/alsa/gstalsasrc.c:386:gst_alsasrc_getcaps: устройство не открыто, с помощью шаблона caps /gstreamer1.0-ase / 1.2.4-r0 / git / ext / alsa / gstalsasrc.c: 191: gst_alsasrc_set_property: gst_alsasrc_set_property

...