summaryrefslogtreecommitdiff
path: root/mcast/client/.svn/text-base/recv_tv.h.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'mcast/client/.svn/text-base/recv_tv.h.svn-base')
-rw-r--r--mcast/client/.svn/text-base/recv_tv.h.svn-base96
1 files changed, 96 insertions, 0 deletions
diff --git a/mcast/client/.svn/text-base/recv_tv.h.svn-base b/mcast/client/.svn/text-base/recv_tv.h.svn-base
new file mode 100644
index 0000000..9feb673
--- /dev/null
+++ b/mcast/client/.svn/text-base/recv_tv.h.svn-base
@@ -0,0 +1,96 @@
+/*
+ * (c) BayCom GmbH, http://www.baycom.de, info@baycom.de
+ *
+ * See the COPYING file for copyright information and
+ * how to reach the author.
+ *
+ * modified by Reel Multimedia, http://www.reel-multimedia.com, info@reel-multimedia.com
+ * 01042010 DL: use a single thread for reading from network layer (uses less resources)
+ *
+ */
+
+#ifndef __RECV_TV_H__
+#define __RECV_TV__H__
+
+#define REP_TIME 1000000
+#define MAX_DROP_NUM 5
+#define RECV_MAX_PIDS 256
+
+//typedef struct recv_info recv_info_t;
+
+typedef struct {
+ int pid;
+ int id;
+ int priority;
+#if 1
+ int re;
+#endif
+} dvb_pid_t;
+
+typedef struct pid_info
+{
+ struct list list;
+ UDPContext *s;
+ dvb_pid_t pid;
+ struct in6_addr mcg;
+ recv_info_t *recv;
+ pthread_t recv_ts_thread;
+ int run;
+ int dropped;
+ int cont_old;
+} pid_info_t;
+
+struct recv_info
+{
+ struct list list;
+ recv_info_t *head;
+ pid_info_t slots;
+ int lastalloc;
+ pthread_t recv_ten_thread;
+ struct in6_addr mcg;
+ int ten_run;
+
+ dvb_pid_t pids[RECV_MAX_PIDS];
+ int pidsnum;
+ recv_sec_t sec;
+ struct dvb_frontend_parameters fe_parms;
+
+ recv_festatus_t fe_status;
+
+ int (*handle_ten) (tra_t *ten, void *context);
+ void *handle_ten_context;
+
+ int (*handle_ts) (unsigned char *buffer, size_t len, void *context);
+ void *handle_ts_context;
+};
+
+// Internal Stuff
+int recv_redirect (recv_info_t * r, struct in6_addr mcg);
+int count_all_pids (recv_info_t * receivers);
+int count_receivers(recv_info_t *receivers);
+
+// PID-Handling
+DLL_SYMBOL int recv_pid_add (recv_info_t * r, dvb_pid_t *pid);
+DLL_SYMBOL int recv_pid_del (recv_info_t * r, int pid);
+DLL_SYMBOL int recv_pids (recv_info_t * r, dvb_pid_t *pids);
+DLL_SYMBOL int recv_pids_get (recv_info_t *r, dvb_pid_t *pids);
+DLL_SYMBOL int recv_show_all_pids (recv_info_t * receivers);
+void recv_show_pids(recv_info_t *r);
+
+// Complete Tune
+DLL_SYMBOL int recv_tune (recv_info_t * r, fe_type_t type, int satpos, recv_sec_t *sec, struct dvb_frontend_parameters *fe_parms, dvb_pid_t *pids);
+
+// Receiver Handling
+DLL_SYMBOL recv_info_t *recv_add (void);
+DLL_SYMBOL void recv_del (recv_info_t *r);
+DLL_SYMBOL int recv_stop (recv_info_t * r);
+DLL_SYMBOL int register_ts_handler (recv_info_t * r, int (*p)(unsigned char *, size_t, void *), void *c);
+
+// Module global functions
+DLL_SYMBOL int recv_init(char *intf, int p);
+DLL_SYMBOL int recv_exit(void);
+
+
+int find_any_slot_by_mcg (recv_info_t * receivers, struct in6_addr *mcg);
+
+#endif