| 112 | } |
| 113 | |
| 114 | static av_cold int pulse_close(AVFormatContext *s) |
| 115 | { |
| 116 | PulseData *pd = s->priv_data; |
| 117 | |
| 118 | if (pd->mainloop) |
| 119 | pa_threaded_mainloop_stop(pd->mainloop); |
| 120 | |
| 121 | if (pd->stream) |
| 122 | pa_stream_unref(pd->stream); |
| 123 | pd->stream = NULL; |
| 124 | |
| 125 | if (pd->context) { |
| 126 | pa_context_disconnect(pd->context); |
| 127 | pa_context_unref(pd->context); |
| 128 | } |
| 129 | pd->context = NULL; |
| 130 | |
| 131 | if (pd->mainloop) |
| 132 | pa_threaded_mainloop_free(pd->mainloop); |
| 133 | pd->mainloop = NULL; |
| 134 | |
| 135 | ff_timefilter_destroy(pd->timefilter); |
| 136 | pd->timefilter = NULL; |
| 137 | |
| 138 | return 0; |
| 139 | } |
| 140 | |
| 141 | static av_cold int pulse_read_header(AVFormatContext *s) |
| 142 | { |
no test coverage detected