Mercurial > pt1.oyama
diff recpt1/tssplitter_lite.h @ 99:3a3f15b063e1
now recpt1 accepts single sid for terrestrial channels.
technical summary:
- mark pid to record instead of pid to drop
- split after decoding for now
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Fri, 12 Feb 2010 21:40:21 +0900 |
parents | 3fd15032fd3a |
children | aeba1988234f |
line wrap: on
line diff
--- a/recpt1/tssplitter_lite.h Wed Feb 10 15:02:25 2010 +0900 +++ b/recpt1/tssplitter_lite.h Fri Feb 12 21:40:21 2010 +0900 @@ -17,18 +17,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef _TS_SPLITTER_LITE_H_ #define _TS_SPLITTER_LITE_H_ -#if defined(WIN32) - #include <io.h> - #include <windows.h> - #include <crtdbg.h> - #pragma warning(disable: 4996) -#else - #define __STDC_FORMAT_MACROS - #include <inttypes.h> - #include <unistd.h> -// #include "portable.h" -#endif +#define __STDC_FORMAT_MACROS +#include <inttypes.h> +#include <unistd.h> #define LENGTH_PACKET (188) #define MAX_PID (8192) @@ -52,21 +44,20 @@ unsigned char* pat; char** sid_list; unsigned char pat_count; - int pmt_drop; + int pmt_remain; int pmt_counter; } splitter; -char** AnalyzeSid(char* sid); +/* b25 decoder would hoard up large chank */ +typedef struct _splitbuf_t +{ + int size; + u_char buffer[1024*1024]; +} splitbuf_t; + splitter* split_startup(char *sid); int split_select(splitter *sp, ARIB_STD_B25_BUFFER *sbuf); -void split_shutdown( splitter* sp); -int ReadTs( unsigned char** pat, unsigned char* pids, char** sid_list, unsigned char* pmt_pids, ARIB_STD_B25_BUFFER *sbuf, int* pmt_drop, int* pmt_counter); -//int split_ts( unsigned char** pat, unsigned char* pids, ARIB_STD_B25_BUFFER *sbuf, BUFSZ *dbuf); -int split_ts( splitter *splitter, ARIB_STD_B25_BUFFER *sbuf, BUFSZ *dbuf); -int AnalyzePat(unsigned char* buf, unsigned char** pat, unsigned char* pids, char** sid_list, unsigned char* pmt_pids, int* pmt_drop); -int RecreatePat(unsigned char* buf, unsigned char** pat, unsigned char* pids, int *pos); -int AnalyzePmt(unsigned char* buf, unsigned char* pids); +void split_shutdown(splitter *sp); +int split_ts(splitter *splitter, ARIB_STD_B25_BUFFER *sbuf, splitbuf_t *dbuf); -int GetCrc32(unsigned char* data, int len); -int GetPid(unsigned char* data); #endif