mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-31 22:25:33 -04:00
Hand the stream socket to the rt thread
This commit is contained in:
parent
255f9b0fe6
commit
f992296b97
1 changed files with 16 additions and 9 deletions
|
|
@ -113,6 +113,10 @@ static const char* const valid_modargs[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
enum {
|
||||
SINK_MESSAGE_PASS_SOCKET = PA_SINK_MESSAGE_MAX
|
||||
};
|
||||
|
||||
static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) {
|
||||
int e;
|
||||
pa_log/*_debug*/("sending %s", bt_audio_strmsg(msg->msg_type));
|
||||
|
|
@ -545,15 +549,15 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
|
|||
break;
|
||||
}
|
||||
|
||||
// case SINK_MESSAGE_PASS_SOCKET: {
|
||||
// struct pollfd *pollfd;
|
||||
// pa_assert(!u->rtpoll_item);
|
||||
// u->rtpoll_item = pa_rtpoll_item_new(u->rtpoll, PA_RTPOLL_NEVER, 1);
|
||||
// pollfd = pa_rtpoll_item_get_pollfd(u->rtpoll_item, NULL);
|
||||
// pollfd->fd = u->fd;
|
||||
// pollfd->events = pollfd->revents = 0;
|
||||
// return 0;
|
||||
// }
|
||||
case SINK_MESSAGE_PASS_SOCKET: {
|
||||
struct pollfd *pollfd;
|
||||
pa_assert(!u->rtpoll_item);
|
||||
u->rtpoll_item = pa_rtpoll_item_new(u->rtpoll, PA_RTPOLL_NEVER, 1);
|
||||
pollfd = pa_rtpoll_item_get_pollfd(u->rtpoll_item, NULL);
|
||||
pollfd->fd = u->stream_fd;
|
||||
pollfd->events = pollfd->revents = 0;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return pa_sink_process_msg(o, code, data, offset, chunk);
|
||||
|
|
@ -809,6 +813,9 @@ int pa__init(pa_module* m) {
|
|||
}
|
||||
pa_sink_put(u->sink);
|
||||
|
||||
/* hand the socket to the rt thread */
|
||||
pa_asyncmsgq_post(u->thread_mq.inq, PA_MSGOBJECT(u->sink), SINK_MESSAGE_PASS_SOCKET, NULL, 0, NULL, NULL);
|
||||
|
||||
pa_modargs_free(ma);
|
||||
return 0;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue