void dvr_rec_unsubscribe(dvr_entry_t *de, int stopcode) { assert(de->de_s != NULL); subscription_unsubscribe(de->de_s); streaming_target_deliver(&de->de_sq.sq_st, streaming_msg_create(SMT_EXIT)); pthread_join(de->de_thread, NULL); de->de_s = NULL; if(de->de_tsfix) tsfix_destroy(de->de_tsfix); if(de->de_gh) globalheaders_destroy(de->de_gh); de->de_last_error = stopcode; }
void dvr_rec_unsubscribe(dvr_entry_t *de, int stopcode) { dvr_config_t *cfg = dvr_config_find_by_name_default(de->de_config_name); assert(de->de_s != NULL); subscription_unsubscribe(de->de_s); streaming_target_deliver(&de->de_sq.sq_st, streaming_msg_create(SMT_EXIT)); pthread_join(de->de_thread, NULL); de->de_s = NULL; if(strcmp(cfg->dvr_format, "matroska") == 0) { tsfix_destroy(de->de_tsfix); globalheaders_destroy(de->de_gh); // } else if { (Other containers) // mpegts works like rawts } de->de_last_error = stopcode; }