From ba05614ca9dfbb6337678e6b760af1fb69fb088d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Sat, 26 Jun 2010 22:03:35 +0000 Subject: [PATCH] Add reject filter to streaming_queue_init() Implement streaming_queue_deinit() --- src/dvr/dvr_rec.c | 2 +- src/serviceprobe.c | 2 +- src/streaming.c | 16 ++++++++++++++-- src/streaming.h | 4 +++- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/dvr/dvr_rec.c b/src/dvr/dvr_rec.c index 003a1d85..051836fa 100644 --- a/src/dvr/dvr_rec.c +++ b/src/dvr/dvr_rec.c @@ -65,7 +65,7 @@ dvr_rec_subscribe(dvr_entry_t *de) snprintf(buf, sizeof(buf), "DVR: %s", de->de_title); - streaming_queue_init(&de->de_sq); + streaming_queue_init(&de->de_sq, 0); pthread_create(&de->de_thread, NULL, dvr_thread, de); diff --git a/src/serviceprobe.c b/src/serviceprobe.c index 777a3c86..1c749493 100644 --- a/src/serviceprobe.c +++ b/src/serviceprobe.c @@ -91,7 +91,7 @@ serviceprobe_thread(void *aux) pthread_mutex_lock(&global_lock); - streaming_queue_init(&sq); + streaming_queue_init(&sq, 0); while(1) { diff --git a/src/streaming.c b/src/streaming.c index b7b1770b..21954474 100644 --- a/src/streaming.c +++ b/src/streaming.c @@ -62,9 +62,9 @@ streaming_queue_deliver(void *opauqe, streaming_message_t *sm) * */ void -streaming_queue_init(streaming_queue_t *sq) +streaming_queue_init(streaming_queue_t *sq, int reject_filter) { - streaming_target_init(&sq->sq_st, streaming_queue_deliver, sq, 0); + streaming_target_init(&sq->sq_st, streaming_queue_deliver, sq, reject_filter); pthread_mutex_init(&sq->sq_mutex, NULL); pthread_cond_init(&sq->sq_cond, NULL); @@ -72,6 +72,18 @@ streaming_queue_init(streaming_queue_t *sq) } +/** + * + */ +void +streaming_queue_deinit(streaming_queue_t *sq) +{ + streaming_queue_clear(&sq->sq_queue); + pthread_mutex_destroy(&sq->sq_mutex); + pthread_cond_destroy(&sq->sq_cond); +} + + /** * */ diff --git a/src/streaming.h b/src/streaming.h index 7a439bba..c13b5318 100644 --- a/src/streaming.h +++ b/src/streaming.h @@ -62,10 +62,12 @@ void streaming_target_init(streaming_target_t *st, st_callback_t *cb, void *opaque, int reject_filter); -void streaming_queue_init(streaming_queue_t *sq); +void streaming_queue_init(streaming_queue_t *sq, int reject_filter); void streaming_queue_clear(struct streaming_message_queue *q); +void streaming_queue_deinit(streaming_queue_t *sq); + void streaming_target_connect(streaming_pad_t *sp, streaming_target_t *st); void streaming_target_disconnect(streaming_pad_t *sp, streaming_target_t *st);