You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(10) |
Jun
(35) |
Jul
(11) |
Aug
(9) |
Sep
|
Oct
(9) |
Nov
(1) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(9) |
Nov
(3) |
Dec
|
2004 |
Jan
(2) |
Feb
|
Mar
(28) |
Apr
(5) |
May
|
Jun
(1) |
Jul
(5) |
Aug
(2) |
Sep
|
Oct
(2) |
Nov
|
Dec
(5) |
2005 |
Jan
(2) |
Feb
(8) |
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
(26) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ni...@us...> - 2009-01-02 09:10:44
|
Update of /cvsroot/dvbtools/dvbstream In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19100 Modified Files: dvbstream.c Log Message: fixed support for ts2ps: pid 0 is always 0, while the 2 other pids are shifted by 1 position Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** dvbstream.c 24 Mar 2008 18:28:16 -0000 1.62 --- dvbstream.c 2 Jan 2009 09:10:35 -0000 1.63 *************** *** 1363,1367 **** } ! if ((output_type==RTP_PS) && (npids!=2)) { fprintf(stderr,"ERROR: PS requires exactly two PIDS - video and audio.\n"); exit(1); --- 1363,1367 ---- } ! if ((output_type==RTP_PS) && (npids!=3)) { fprintf(stderr,"ERROR: PS requires exactly two PIDS - video and audio.\n"); exit(1); *************** *** 1551,1555 **** } else if (output_type==RTP_PS) { if (read(fd_dvr,buf,TS_SIZE) > 0) { ! my_ts_to_ps((uint8_t*)buf, pids[0], pids[1]); } else if(use_stdin) break; } else if(output_type==MAP_TS) { --- 1551,1555 ---- } else if (output_type==RTP_PS) { if (read(fd_dvr,buf,TS_SIZE) > 0) { ! my_ts_to_ps((uint8_t*)buf, pids[1], pids[2]); } else if(use_stdin) break; } else if(output_type==MAP_TS) { |
From: <ni...@us...> - 2008-03-24 18:28:21
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv15966 Modified Files: dvbstream.c Log Message: discard broken packets where the len of the TS payload is > TS_SIZE - 4 Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** dvbstream.c 14 Sep 2007 21:02:39 -0000 1.61 --- dvbstream.c 24 Mar 2008 18:28:16 -0000 1.62 *************** *** 818,821 **** --- 818,823 ---- else if(af == 3) l += buf[4] + 1; + if(l >= TS_SIZE - 4) + return 0; if(pid == 0) |
From: <ni...@us...> - 2007-09-25 21:49:13
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv13189 Modified Files: tune.c Log Message: cosmetics: reformatted Index: tune.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/tune.c,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** tune.c 25 Sep 2007 21:42:55 -0000 1.25 --- tune.c 25 Sep 2007 21:49:10 -0000 1.26 *************** *** 235,252 **** break; case FE_QPSK: ! pol = toupper(pol); ! if (freq > 2200000) { if (freq < SLOF) { feparams.frequency=(freq-LOF1); ! hi_lo = 0; ! base = LOF1; } else { feparams.frequency=(freq-LOF2); ! hi_lo = 1; ! base = LOF2; ! } } else { ! feparams.frequency=freq; ! base = 0; } --- 235,252 ---- break; case FE_QPSK: ! pol = toupper(pol); ! if (freq > 2200000) { if (freq < SLOF) { feparams.frequency=(freq-LOF1); ! hi_lo = 0; ! base = LOF1; } else { feparams.frequency=(freq-LOF2); ! hi_lo = 1; ! base = LOF2; ! } } else { ! feparams.frequency=freq; ! base = 0; } *************** *** 258,267 **** dfd = fd_frontend; ! if(do_diseqc(dfd, diseqc, (pol == 'V' ? 1 : 0), hi_lo) == 0) fprintf(stderr, "DISEQC SETTING SUCCEDED\n"); ! else { fprintf(stderr, "DISEQC SETTING FAILED\n"); ! return -1; ! } break; case FE_QAM: --- 258,267 ---- dfd = fd_frontend; ! if(do_diseqc(dfd, diseqc, (pol == 'V' ? 1 : 0), hi_lo) == 0) fprintf(stderr, "DISEQC SETTING SUCCEDED\n"); ! else { fprintf(stderr, "DISEQC SETTING FAILED\n"); ! return -1; ! } break; case FE_QAM: |
From: <ni...@us...> - 2007-09-25 21:43:00
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv10727 Modified Files: tune.c Log Message: removed unused variables Index: tune.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/tune.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** tune.c 5 May 2007 21:36:38 -0000 1.24 --- tune.c 25 Sep 2007 21:42:55 -0000 1.25 *************** *** 108,113 **** else //only tone and voltage { - fe_sec_voltage_t voltage; - fprintf(stderr, "Setting only tone %s and voltage %dV\n", (hi_lo ? "ON" : "OFF"), (polv ? 13 : 18)); --- 108,111 ---- *************** *** 128,132 **** fe_status_t festatus; struct pollfd pfd[1]; ! int status, locks=0, ok=0; time_t tm1, tm2; --- 126,130 ---- fe_status_t festatus; struct pollfd pfd[1]; ! int locks=0, ok=0; time_t tm1, tm2; |
From: <ni...@us...> - 2007-09-14 21:02:46
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv29634 Modified Files: dvbstream.c Log Message: cosmetics: small reindentation Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** dvbstream.c 12 Sep 2007 21:59:20 -0000 1.60 --- dvbstream.c 14 Sep 2007 21:02:39 -0000 1.61 *************** *** 1607,1613 **** if (!to_stdout && !map_cnt) close(socketOut); if(!use_stdin) { ! for (i=0;i<npids;i++) close(fd[i]); ! close(fd_dvr); ! close(fd_frontend); } --- 1607,1613 ---- if (!to_stdout && !map_cnt) close(socketOut); if(!use_stdin) { ! for (i=0;i<npids;i++) close(fd[i]); ! close(fd_dvr); ! close(fd_frontend); } |
From: <ni...@us...> - 2007-09-12 21:59:23
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv31943 Modified Files: dvbstream.c Log Message: documented -stdin Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** dvbstream.c 12 Sep 2007 21:48:34 -0000 1.59 --- dvbstream.c 12 Sep 2007 21:59:20 -0000 1.60 *************** *** 970,973 **** --- 970,974 ---- fprintf(stderr,"-prog Selects PROGRAM mode (opens a demux on the whole TS)\n"); fprintf(stderr,"-pid Selects PID mode (default)\n"); + fprintf(stderr,"-stdin Use STDIN as source rather than a DVB card\n"); |
From: <ni...@us...> - 2007-09-12 21:48:39
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv27930 Modified Files: dvbstream.c Log Message: added code to demux programs/pids from stdin rather than from a dvb card Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** dvbstream.c 25 Mar 2007 21:05:07 -0000 1.58 --- dvbstream.c 12 Sep 2007 21:48:34 -0000 1.59 *************** *** 98,101 **** --- 98,102 ---- char pol=0; int streamtype = RTP; + static int use_stdin=0; #define PID_MODE 0 *************** *** 321,324 **** --- 322,326 ---- srate=atoi(&cmd[i])*1000UL; fprintf(stderr,"Tuning to %ld,%ld,%c\n",freq,srate,pol); + if(!use_stdin) tune_it(fd_frontend,freq,srate,pol,tone,specInv,diseqc,modulation,HP_CodeRate,TransmissionMode,guardInterval,bandWidth, LP_CodeRate, hier); } *************** *** 990,993 **** --- 992,997 ---- output_type=RTP_NONE; if (secs==-1) { secs=10; } + } else if(strcmp(argv[i],"-stdin")==0) { + use_stdin = 1; } else if (strcmp(argv[i],"-i")==0) { if(pids_map != NULL) { *************** *** 1383,1387 **** alarm(ALARM_TIME); ! if (freq!=0) { if (open_fe(&fd_frontend)) { fprintf(stderr,"Tuning to %ld Hz\n",freq); --- 1387,1391 ---- alarm(ALARM_TIME); ! if (freq!=0 && !use_stdin) { if (open_fe(&fd_frontend)) { fprintf(stderr,"Tuning to %ld Hz\n",freq); *************** *** 1417,1420 **** --- 1421,1427 ---- } } + if(use_stdin) { + fd_dvr = fileno(stdin); + } else { for (i=0;i<npids;i++) { if((fd[i] = open(demuxdev[card],O_RDWR|O_NONBLOCK)) < 0){ *************** *** 1435,1438 **** --- 1442,1446 ---- setbit(USER_PIDS, pids[i]); } + } gettimeofday(&tv,(struct timezone*) NULL); *************** *** 1541,1545 **** if (read(fd_dvr,buf,TS_SIZE) > 0) { my_ts_to_ps((uint8_t*)buf, pids[0], pids[1]); ! } } else if(output_type==MAP_TS) { int bytes_read; --- 1549,1553 ---- if (read(fd_dvr,buf,TS_SIZE) > 0) { my_ts_to_ps((uint8_t*)buf, pids[0], pids[1]); ! } else if(use_stdin) break; } else if(output_type==MAP_TS) { int bytes_read; *************** *** 1577,1580 **** --- 1585,1589 ---- } } + else if(use_stdin) break; } else { if (do_analyse) { *************** *** 1596,1602 **** --- 1605,1613 ---- if (!to_stdout && !map_cnt) close(socketOut); + if(!use_stdin) { for (i=0;i<npids;i++) close(fd[i]); close(fd_dvr); close(fd_frontend); + } if (do_analyse) { |
From: <ni...@us...> - 2007-05-05 21:36:45
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv9230 Modified Files: tune.c Log Message: 1000l, in do_diseqc() sat_no was 0-based, while it has to be 1-based Index: tune.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/tune.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** tune.c 14 Aug 2006 16:55:39 -0000 1.23 --- tune.c 5 May 2007 21:36:38 -0000 1.24 *************** *** 97,101 **** * bits are: option, position, polarizaion, band */ - sat_no--; cmd.cmd.msg[3] = 0xf0 | (((sat_no * 4) & 0x0f) | (polv ? 0 : 2) | (hi_lo ? 1 : 0)); --- 97,100 ---- |
From: <ni...@us...> - 2007-05-05 21:27:59
|
Update of /cvsroot/dvbtools/dvbtune In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv6031 Modified Files: tune.c Log Message: 1000l, in do_diseqc() sat_no was 0-based, while it has to be 1-based Index: tune.c =================================================================== RCS file: /cvsroot/dvbtools/dvbtune/tune.c,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** tune.c 23 Feb 2005 21:17:07 -0000 1.30 --- tune.c 5 May 2007 21:27:55 -0000 1.31 *************** *** 97,101 **** * bits are: option, position, polarizaion, band */ - sat_no--; cmd.cmd.msg[3] = 0xf0 | (((sat_no * 4) & 0x0f) | (polv ? 0 : 2) | (hi_lo ? 1 : 0)); --- 97,100 ---- |
From: <ni...@us...> - 2007-03-25 21:05:12
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv14363 Modified Files: dvbstream.c Log Message: selection of programs by name (by the SDT; it won't work in ATSC streams) Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** dvbstream.c 24 Mar 2007 22:46:49 -0000 1.57 --- dvbstream.c 25 Mar 2007 21:05:07 -0000 1.58 *************** *** 416,419 **** --- 416,421 ---- int progs[MAX_CHANNELS]; int progs_cnt; + uint8_t **prognames; + int prognames_cnt; PID_BIT_MAP pidmap; long start_time; // in seconds *************** *** 536,539 **** --- 538,564 ---- } } + + + for(i = 0; i < map_cnt; i++) + { + for(j = 0; j < pids_map[i].prognames_cnt; j++) + { + for(k = 0; k < PMT.cnt; k++) + { + if(!strcmp(pids_map[i].prognames[j], PMT.entries[k].name)) + { + setbit(pids_map[i].pidmap, PAT.entries[k].pmt_pid); + setbit(pids_map[i].pidmap, SDT_PID); + for(n = 0; n < PMT.entries[k].pids_cnt; n++) + { + int pid = PMT.entries[k].pids[n]; + + setbit(pids_map[i].pidmap, pid); + //fprintf(stderr, "\nADDED to map %d PROG pid %d, prog: %d", j, pid, PAT.entries[k].program); + } + } + } + } + } } *************** *** 733,737 **** --- 758,764 ---- for(k = 0; k < PAT.entries_cnt, k < PMT.cnt; k++) if(PAT.entries[k].program == prog) + { found = k; + if(k != -1) *************** *** 767,770 **** --- 794,798 ---- } } + } i += 5 + descr_len; } *************** *** 795,799 **** } else if(pid == SDT_PID) ! parse_sdt(pusi, &buf[l], TS_SIZE - l); else { --- 823,838 ---- } else if(pid == SDT_PID) ! { ! if(parse_sdt(pusi, &buf[l], TS_SIZE - l) == 2) ! { ! int i; ! for(i = 0; i < PMT.cnt; i++) ! { ! PMT.entries[i].section.pos = SECTION_LEN+1; ! PMT.entries[i].version = -1; ! } ! update_bitmaps(); ! } ! } else { *************** *** 811,814 **** --- 850,866 ---- } + static int is_string(char *s) + { + int i, n, len; + + n = 0; + len = strlen(s); + for(i = 0; i < len; i++) + if(isdigit(s[i])) + n++; + + return (n != len); + } + int main(int argc, char **argv) { *************** *** 1251,1257 **** --- 1303,1324 ---- else { // block for the map + int is_progname = is_string(argv[i]); + pids_map_t *map = &(pids_map[map_cnt-1]); stream_whole_TS=1; setallbits(USER_PIDS); found = 0; + if(is_progname) { + for(j=0;j<map->prognames_cnt;j++) { + if(!strcmp(map->prognames[j], argv[i])) + found = 1; + } + if(found == 0) { + map->prognames = realloc(map->prognames, (map->prognames_cnt+1)*sizeof(map->prognames)); + map->prognames_cnt++; + map->prognames[map->prognames_cnt-1] = malloc(strlen(argv[i])+1); + strcpy(map->prognames[map->prognames_cnt-1], argv[i]); + } + } + else { for (j=0;j<MAX_CHANNELS;j++) { if(pids_map[map_cnt-1].progs[j] == pid) found = 1; *************** *** 1261,1264 **** --- 1328,1332 ---- } } + } if(selection_mode == PID_MODE) { |
From: <ni...@us...> - 2007-03-24 22:46:54
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv28666 Modified Files: dvbstream.c Log Message: added SDT parser (atm it only prints the names of programs) Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** dvbstream.c 21 Mar 2007 23:58:52 -0000 1.56 --- dvbstream.c 24 Mar 2007 22:46:49 -0000 1.57 *************** *** 457,460 **** --- 457,461 ---- int pids[MAX_PIDS]; int pids_cnt; + uint8_t name[256]; } pmt_t; *************** *** 464,467 **** --- 465,474 ---- } PMT; + static struct { + int len; //section length + int version; + section_t section; + } SDT; + static int SI_fd[MAX_CHANNELS]; static int SI_fd_cnt = 0; *************** *** 583,586 **** --- 590,594 ---- clearbits(SI_PIDS); setbit(SI_PIDS, 0); + setbit(SI_PIDS, SDT_PID); seclen = ((buf[1] & 0x0F) << 8) | buf[2]; num = (seclen - 9) / 4; *************** *** 605,609 **** --- 613,620 ---- PMT.entries[j].section.pos = SECTION_LEN+1; PMT.entries[j].version = -1; + PMT.entries[j].name[0] = 0; } + SDT.version=-1; + SDT.section.pos = SECTION_LEN+1; PAT.version = vers; *************** *** 685,688 **** --- 696,777 ---- } + static int parse_sdt(int pusi, uint8_t *b, int l) + { + unsigned int i, version, seclen, skip, prog, k, descr_len, found, len; + uint8_t *buf; + + skip = collect_section(&(SDT.section), pusi, b, l); + + if(!skip) + return 0; + + buf = &(SDT.section.buf[skip]); + + if(buf[0] != 0x42) //pmt id + return 0; + if(!(buf[5] & 1)) //not yet valid + return 0; + + version = (buf[5] >> 1) & 0x1F; + + if(SDT.version == version) //SDT didn't change + return 1; + + seclen = ((buf[1] & 0x0F) << 8) | buf[2]; + if(seclen < 12) + return 0; + + i = 11; + while(i < seclen - 4) + { + descr_len = ((buf[i+3] & 0x0F) << 8) | buf[i+4]; + if(i+5+descr_len >= seclen) + break; + prog = (buf[i] << 8) | buf[i+1]; + found = -1; + k = 0; + for(k = 0; k < PAT.entries_cnt, k < PMT.cnt; k++) + if(PAT.entries[k].program == prog) + found = k; + + if(k != -1) + { + int j, len, dlen; + + j = i + 5; + len = dlen = 0; + while(len < descr_len) + { + int provider_len, name_len, n; + pmt_t *pmt; + + n = j; + dlen = buf[n+1]; + if(len + dlen > descr_len) break; + if(buf[n] == 0x48) + { + provider_len = buf[n+3]; + if(provider_len + 2 > dlen) + break; + n += 4 + provider_len; + name_len = buf[n]; + if(provider_len + 3 + name_len > dlen) + break; + pmt = &PMT.entries[k]; + memcpy(pmt->name, &buf[n+1], name_len); + pmt->name[name_len] = 0; + fprintf(stderr, "Program n. %d, name: '%s'\n", prog, pmt->name); + } + len += dlen+2; + j += dlen+2; + } + } + i += 5 + descr_len; + } + SDT.version = version; + return 2; + } + + static int parse_ts_packet(uint8_t *buf) { *************** *** 705,708 **** --- 794,799 ---- add_pmt_pids(); } + else if(pid == SDT_PID) + parse_sdt(pusi, &buf[l], TS_SIZE - l); else { *************** *** 772,775 **** --- 863,870 ---- clearbits(SI_PIDS); setbit(SI_PIDS, 0); + memset(&SDT, 0, sizeof(SDT)); + SDT.section.pos = SECTION_LEN+1; + SDT.version = -1; + setbit(SI_PIDS, SDT_PID); clearbits(USER_PIDS); setbit(USER_PIDS, 0); |
From: <ni...@us...> - 2007-03-21 23:58:56
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv5096 Modified Files: dvbstream.c Log Message: when in program mode add to the mux SDT pid 0x11 in order to get the program name Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** dvbstream.c 20 Mar 2007 23:15:17 -0000 1.55 --- dvbstream.c 21 Mar 2007 23:58:52 -0000 1.56 *************** *** 467,470 **** --- 467,472 ---- static int SI_fd_cnt = 0; + #define SDT_PID 0x11 + #define getbit(buf, pid) (buf[(pid)/8] & (1 << ((pid) % 8))) #define setbit(buf, pid) buf[(pid)/8] |= (1 << ((pid) % 8)) *************** *** 515,518 **** --- 517,521 ---- { setbit(pids_map[j].pidmap, PAT.entries[i].pmt_pid); + setbit(pids_map[j].pidmap, SDT_PID); for(n = 0; n < PMT.entries[i].pids_cnt; n++) { |
From: <ni...@us...> - 2007-03-20 23:15:26
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv22328 Modified Files: dvbstream.c Log Message: raised version to 0.7 Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** dvbstream.c 20 Mar 2007 23:14:00 -0000 1.54 --- dvbstream.c 20 Mar 2007 23:15:17 -0000 1.55 *************** *** 753,757 **** map_cnt = 0; ! fprintf(stderr,"dvbstream v0.6 - (C) Dave Chapman 2001-2004\n"); fprintf(stderr,"Released under the GPL.\n"); fprintf(stderr,"Latest version available from http://www.linuxstb.org/\n"); --- 753,757 ---- map_cnt = 0; ! fprintf(stderr,"dvbstream v0.7 - (C) Dave Chapman 2001-2004\n"); fprintf(stderr,"Released under the GPL.\n"); fprintf(stderr,"Latest version available from http://www.linuxstb.org/\n"); |
From: <ni...@us...> - 2007-03-20 23:14:04
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv21618 Modified Files: dvbstream.c Log Message: help for -pid and -prog Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** dvbstream.c 20 Mar 2007 23:10:43 -0000 1.53 --- dvbstream.c 20 Mar 2007 23:14:00 -0000 1.54 *************** *** 816,819 **** --- 816,822 ---- fprintf(stderr,"-rtp Sets output type to RTP (default when using network out)\n"); fprintf(stderr,"-udp Sets output type to UDP \n"); + fprintf(stderr,"-prog Selects PROGRAM mode (opens a demux on the whole TS)\n"); + fprintf(stderr,"-pid Selects PID mode (default)\n"); + fprintf(stderr,"\n-analyse Perform a simple analysis of the bitrates of the PIDs in the transport stream\n"); |
From: <ni...@us...> - 2007-03-20 23:10:48
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv20525 Modified Files: dvbstream.c Log Message: added -prog and -pid to select between pid and program mode; in program mode the whole TS is opened and all the pids part the program(s) will be saved to the output map Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** dvbstream.c 17 Mar 2007 23:02:30 -0000 1.52 --- dvbstream.c 20 Mar 2007 23:10:43 -0000 1.53 *************** *** 99,102 **** --- 99,107 ---- int streamtype = RTP; + #define PID_MODE 0 + #define PROG_MODE 1 + static int selection_mode = PID_MODE; + + int open_fe(int* fd_frontend) { if((*fd_frontend = open(frontenddev[card],O_RDWR | O_NONBLOCK)) < 0){ *************** *** 409,412 **** --- 414,419 ---- int num; int pid_cnt; + int progs[MAX_CHANNELS]; + int progs_cnt; PID_BIT_MAP pidmap; long start_time; // in seconds *************** *** 497,500 **** --- 504,529 ---- } } + + + for(j = 0; j < map_cnt; j++) + { + for(k = 0; k < pids_map[j].progs_cnt; k++) + { + for(i = 0; i < PAT.entries_cnt; i++) + { + if(pids_map[j].progs[k] == PAT.entries[i].program) + { + setbit(pids_map[j].pidmap, PAT.entries[i].pmt_pid); + for(n = 0; n < PMT.entries[i].pids_cnt; n++) + { + int pid = PMT.entries[i].pids[n]; + + setbit(pids_map[j].pidmap, pid); + //fprintf(stderr, "\nADDED to map %d PROG pid %d, prog: %d", j, pid, PAT.entries[i].program); + } + } + } + } + } } *************** *** 714,717 **** --- 743,747 ---- struct timeval tv; int found; + int stream_whole_TS=0; /* Output: {uni,multi,broad}cast socket */ *************** *** 851,854 **** --- 881,885 ---- map_cnt++; pids_map[map_cnt-1].pid_cnt = 0; + pids_map[map_cnt-1].progs_cnt = 0; pids_map[map_cnt-1].start_time=start_time; pids_map[map_cnt-1].end_time=end_time; *************** *** 919,922 **** --- 950,959 ---- specInv = INVERSION_AUTO; } + else if(strcmp(argv[i],"-prog")==0) { + selection_mode = PROG_MODE; + } + else if(strcmp(argv[i],"-pid")==0) { + selection_mode = PID_MODE; + } else if (strcmp(argv[i],"-o")==0) { to_stdout = 1; *************** *** 1092,1095 **** --- 1129,1133 ---- // If we are currently processing a "-o:" option: if (map_cnt) { + if(selection_mode == PID_MODE) { // block for the map found = 0; *************** *** 1109,1114 **** --- 1147,1165 ---- pids_map[map_cnt-1].pid_cnt++; } + } + else { + // block for the map + stream_whole_TS=1; + setallbits(USER_PIDS); + found = 0; + for (j=0;j<MAX_CHANNELS;j++) { + if(pids_map[map_cnt-1].progs[j] == pid) found = 1; + } + if(found == 0) + pids_map[map_cnt-1].progs[pids_map[map_cnt-1].progs_cnt++] = pid; + } } + if(selection_mode == PID_MODE) { // block for the list of pids to demux found = 0; *************** *** 1132,1135 **** --- 1183,1187 ---- } } + } } } *************** *** 1185,1188 **** --- 1237,1245 ---- fprintf(stderr,"dvbstream will stop after %d seconds (%d minutes)\n",secs,secs/60); + if(stream_whole_TS) { + npids=1; + pids[0] = 8192; + } + else for(i=0; i<npids; i++) { if(pids[i] == 8192) { |
From: <ni...@us...> - 2007-03-19 02:40:49
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv18793 Modified Files: dvbstream.c Log Message: uint8_t is a better type for PID_BIT_MAP, as sizeof(char) may be > 1 on some systems Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** dvbstream.c 17 Mar 2007 10:50:42 -0000 1.45 --- dvbstream.c 17 Mar 2007 10:54:38 -0000 1.46 *************** *** 451,455 **** } PMT; ! typedef unsigned char PID_BIT_MAP[1024]; #define getbit(buf, pid) (buf[(pid)/8] & (1 << ((pid) % 8))) --- 451,455 ---- } PMT; ! typedef uint8_t PID_BIT_MAP[1024]; #define getbit(buf, pid) (buf[(pid)/8] & (1 << ((pid) % 8))) |
From: <ni...@us...> - 2007-03-19 02:40:49
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv16729 Modified Files: dvbstream.c Log Message: commented a couple of calls to fprintf() Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** dvbstream.c 17 Mar 2007 00:19:11 -0000 1.41 --- dvbstream.c 17 Mar 2007 00:26:21 -0000 1.42 *************** *** 557,561 **** pcr_pid = ((buf[8] & 0x1F) << 8) | buf[9]; pmt->pids[pmt->pids_cnt++] = pcr_pid; ! fprintf(stderr, "\nPROGRAM: %d, pcr_pid: %d, version: %d vs %d\n", prog, pcr_pid, pmt->version, version); skip = ((buf[10] & 0x0F) << 8) | buf[11]; if(skip+12 > seclen) --- 557,561 ---- pcr_pid = ((buf[8] & 0x1F) << 8) | buf[9]; pmt->pids[pmt->pids_cnt++] = pcr_pid; ! //fprintf(stderr, "\nPROGRAM: %d, pcr_pid: %d, version: %d vs %d\n", prog, pcr_pid, pmt->version, version); skip = ((buf[10] & 0x0F) << 8) | buf[11]; if(skip+12 > seclen) *************** *** 569,573 **** skip = ((buf[i+3] & 0x0F) << 8) | buf[i+4]; i += skip+5; ! fprintf(stderr, "prog %d, PID: %d, count: %d, type: 0x%x\n", prog, pid, pmt->pids_cnt, buf[i]); } pmt->version = version; --- 569,573 ---- skip = ((buf[i+3] & 0x0F) << 8) | buf[i+4]; i += skip+5; ! //fprintf(stderr, "prog %d, PID: %d, count: %d, type: 0x%x\n", prog, pid, pmt->pids_cnt, buf[i]); } pmt->version = version; |
From: <ni...@us...> - 2007-03-19 02:40:49
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv23643 Modified Files: dvbstream.c Log Message: added an array to keep track of the system information pids; added code in parse_ts_packet() to call parse_pmt() with the appropriate parameters Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** dvbstream.c 17 Mar 2007 00:26:21 -0000 1.42 --- dvbstream.c 17 Mar 2007 00:45:37 -0000 1.43 *************** *** 451,454 **** --- 451,456 ---- } PMT; + static unsigned char SI_PIDS[8192]; + static int collect_section(section_t *section, int pusi, unsigned char *buf, unsigned int len) { *************** *** 500,503 **** --- 502,507 ---- return 1; + memset(&SI_PIDS, 0, sizeof(SI_PIDS)); + SI_PIDS[0] = 1; seclen = ((buf[1] & 0x0F) << 8) | buf[2]; num = (seclen - 9) / 4; *************** *** 517,520 **** --- 521,525 ---- PAT.entries[j].program = (buf[i] << 8) | buf[i+1]; PAT.entries[j].pmt_pid = ((buf[i+2] & 0x1F) << 8) | buf[i+3]; + SI_PIDS[PAT.entries[j].pmt_pid] = 1; i += 4; //fprintf(stderr, "PROGRAM: %d, pmt_pid: %d\n", PAT.entries[j].program, PAT.entries[j].pmt_pid); *************** *** 591,594 **** --- 596,611 ---- if(pid == 0) parse_pat(pusi, &buf[l], TS_SIZE - l); + else + { + int i; + + for(i=0; i<PAT.entries_cnt; i++) + { + if(pid==PAT.entries[i].pmt_pid) + { + parse_pmt(pusi, &PMT.entries[i], &buf[l], TS_SIZE - l); + } + } + } } *************** *** 642,645 **** --- 659,664 ---- PAT.section.pos = SECTION_LEN+1; memset(&PMT, 0, sizeof(PMT)); + memset(&SI_PIDS, 0, sizeof(SI_PIDS)); + SI_PIDS[0] = 1; /* Set default IP and port */ |
From: <ni...@us...> - 2007-03-19 00:40:46
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv23315 Modified Files: dvbstream.c Log Message: removed unused variable and re-typed parse_ts_packet() Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** dvbstream.c 16 Mar 2007 23:12:01 -0000 1.38 --- dvbstream.c 16 Mar 2007 23:14:58 -0000 1.39 *************** *** 480,484 **** static int parse_pat(int pusi, unsigned char *b, int l) { ! unsigned int i, j, vers, seclen, num, len, skip; unsigned char *buf; --- 480,484 ---- static int parse_pat(int pusi, unsigned char *b, int l) { ! unsigned int i, j, vers, seclen, num, skip; unsigned char *buf; *************** *** 569,573 **** } ! static void parse_ts_packet(unsigned char *buf) { int pid, l, af, pusi; --- 569,573 ---- } ! static int parse_ts_packet(unsigned char *buf) { int pid, l, af, pusi; |
From: <ni...@us...> - 2007-03-19 00:40:46
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv25654 Modified Files: dvbstream.c Log Message: added a pidmap to the map structure, that is set according to the pids chosen and used in the core pid-selection code Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** dvbstream.c 17 Mar 2007 11:08:07 -0000 1.47 --- dvbstream.c 17 Mar 2007 12:41:13 -0000 1.48 *************** *** 408,411 **** --- 408,412 ---- int num; int pid_cnt; + PID_BIT_MAP pidmap; long start_time; // in seconds long end_time; // in seconds *************** *** 458,461 **** --- 459,485 ---- #define setbit(buf, pid) buf[(pid)/8] |= (1 << ((pid) % 8)) #define clearbits(buf) memset(buf, 0, sizeof(PID_BIT_MAP)) + #define setallbits(buf) memset(buf, 0xFF, sizeof(PID_BIT_MAP)) + + void update_bitmaps() + { + int i, j; + + for(i = 0; i < map_cnt; i++) + { + clearbits(pids_map[i].pidmap); + setbit(pids_map[i].pidmap, 0); + for(j = 0; j < MAX_CHANNELS; j++) + { + if(pids_map[i].pids[j] == -1) break; + if(pids_map[i].pids[j] == 8192) + { + setallbits(pids_map[i].pidmap); + break; + } + setbit(pids_map[i].pidmap, pids_map[i].pids[j]); + //fprintf(stderr, "MAP: %d, PID: %d\n", i, pids_map[i].pids[j]); + } + } + } *************** *** 1079,1082 **** --- 1103,1107 ---- } } + update_bitmaps(); if (signal(SIGHUP, SignalHandler) == SIG_IGN) signal(SIGHUP, SIG_IGN); *************** *** 1243,1248 **** if ( ((pids_map[i].start_time==-1) || (pids_map[i].start_time <= now)) && ((pids_map[i].end_time==-1) || (pids_map[i].end_time >= now))) { ! for (j = 0; j < MAX_CHANNELS; j++) { ! if (pids_map[i].pids[j] == 8192 || pids_map[i].pids[j] == pid) { errno = 0; if(pids_map[i].filename) --- 1268,1272 ---- if ( ((pids_map[i].start_time==-1) || (pids_map[i].start_time <= now)) && ((pids_map[i].end_time==-1) || (pids_map[i].end_time >= now))) { ! if(getbit(pids_map[i].pidmap, pid)) { errno = 0; if(pids_map[i].filename) *************** *** 1258,1263 **** pids_map[i].pos += bytes_read; } - break; - } } } --- 1282,1285 ---- |
From: <ni...@us...> - 2007-03-18 22:40:51
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv12256 Modified Files: dvbstream.c Log Message: redefined SI_PIDS as a 8192 bits bitmap: it's smaller and has much higher chances to fit in the cache of the cpu; added setbit(), getbit() and clearbits() macros Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** dvbstream.c 17 Mar 2007 00:45:37 -0000 1.43 --- dvbstream.c 17 Mar 2007 10:36:17 -0000 1.44 *************** *** 451,455 **** } PMT; ! static unsigned char SI_PIDS[8192]; static int collect_section(section_t *section, int pusi, unsigned char *buf, unsigned int len) --- 451,461 ---- } PMT; ! typedef unsigned int PID_BIT_MAP[1024]; ! ! #define getbit(buf, pid) (buf[(pid)/8] & (1 << ((pid) % 8))) ! #define setbit(buf, pid) buf[(pid)/8] |= (1 << ((pid) % 8)) ! #define clearbits(buf) memset(buf, 0, sizeof(PID_BIT_MAP)) ! ! static PID_BIT_MAP SI_PIDS; static int collect_section(section_t *section, int pusi, unsigned char *buf, unsigned int len) *************** *** 502,507 **** return 1; ! memset(&SI_PIDS, 0, sizeof(SI_PIDS)); ! SI_PIDS[0] = 1; seclen = ((buf[1] & 0x0F) << 8) | buf[2]; num = (seclen - 9) / 4; --- 508,513 ---- return 1; ! clearbits(SI_PIDS); ! setbit(SI_PIDS, 0); seclen = ((buf[1] & 0x0F) << 8) | buf[2]; num = (seclen - 9) / 4; *************** *** 521,525 **** PAT.entries[j].program = (buf[i] << 8) | buf[i+1]; PAT.entries[j].pmt_pid = ((buf[i+2] & 0x1F) << 8) | buf[i+3]; ! SI_PIDS[PAT.entries[j].pmt_pid] = 1; i += 4; //fprintf(stderr, "PROGRAM: %d, pmt_pid: %d\n", PAT.entries[j].program, PAT.entries[j].pmt_pid); --- 527,531 ---- PAT.entries[j].program = (buf[i] << 8) | buf[i+1]; PAT.entries[j].pmt_pid = ((buf[i+2] & 0x1F) << 8) | buf[i+3]; ! setbit(SI_PIDS, PAT.entries[j].pmt_pid); i += 4; //fprintf(stderr, "PROGRAM: %d, pmt_pid: %d\n", PAT.entries[j].program, PAT.entries[j].pmt_pid); *************** *** 659,664 **** PAT.section.pos = SECTION_LEN+1; memset(&PMT, 0, sizeof(PMT)); ! memset(&SI_PIDS, 0, sizeof(SI_PIDS)); ! SI_PIDS[0] = 1; /* Set default IP and port */ --- 665,670 ---- PAT.section.pos = SECTION_LEN+1; memset(&PMT, 0, sizeof(PMT)); ! clearbits(SI_PIDS); ! setbit(SI_PIDS, 0); /* Set default IP and port */ |
From: <ni...@us...> - 2007-03-18 12:40:45
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv18165 Modified Files: dvbstream.c Log Message: removed unused variable and fixed return statement in void function Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** dvbstream.c 17 Mar 2007 22:40:37 -0000 1.50 --- dvbstream.c 17 Mar 2007 22:47:39 -0000 1.51 *************** *** 597,601 **** { fprintf(stderr,"COULDN'T OPEN DEMUX %i: for pid: %d", i, PAT.entries[i].pmt_pid); ! return 0; } //fprintf(stderr, "\nADDED PMT PID: %d\n", PAT.entries[i].pmt_pid); --- 597,601 ---- { fprintf(stderr,"COULDN'T OPEN DEMUX %i: for pid: %d", i, PAT.entries[i].pmt_pid); ! return; } //fprintf(stderr, "\nADDED PMT PID: %d\n", PAT.entries[i].pmt_pid); *************** *** 1321,1325 **** if(bytes_read > 0) { if(buf[0] == 0x47) { ! int pid, i, j; pid = ((buf[1] & 0x1f) << 8) | buf[2]; --- 1321,1325 ---- if(bytes_read > 0) { if(buf[0] == 0x47) { ! int pid, i; pid = ((buf[1] & 0x1f) << 8) | buf[2]; |
From: <ni...@us...> - 2007-03-18 12:40:42
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv23869 Modified Files: dvbstream.c Log Message: moved definition and instantiation of PID_BIT_MAP and SI_PIDS few lines above for later reuse Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** dvbstream.c 17 Mar 2007 10:54:38 -0000 1.46 --- dvbstream.c 17 Mar 2007 11:08:07 -0000 1.47 *************** *** 398,401 **** --- 398,405 ---- + typedef uint8_t PID_BIT_MAP[1024]; + static PID_BIT_MAP SI_PIDS; + + typedef struct { char *filename; *************** *** 451,461 **** } PMT; - typedef uint8_t PID_BIT_MAP[1024]; - #define getbit(buf, pid) (buf[(pid)/8] & (1 << ((pid) % 8))) #define setbit(buf, pid) buf[(pid)/8] |= (1 << ((pid) % 8)) #define clearbits(buf) memset(buf, 0, sizeof(PID_BIT_MAP)) - static PID_BIT_MAP SI_PIDS; static int collect_section(section_t *section, int pusi, unsigned char *buf, unsigned int len) --- 455,462 ---- |
From: <ni...@us...> - 2007-03-18 12:40:42
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv21993 Modified Files: dvbstream.c Log Message: added still unused PMT parser Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** dvbstream.c 14 Mar 2007 22:26:59 -0000 1.37 --- dvbstream.c 16 Mar 2007 23:12:01 -0000 1.38 *************** *** 438,441 **** --- 438,453 ---- } PAT; + #define MAX_PIDS 202 + typedef struct { + section_t section; + int version; + int pids[MAX_PIDS]; + int pids_cnt; + } pmt_t; + + struct { + pmt_t *entries; + int cnt; + } PMT; static int collect_section(section_t *section, int pusi, unsigned char *buf, unsigned int len) *************** *** 511,514 **** --- 523,571 ---- } + static int parse_pmt(int pusi, pmt_t *pmt, unsigned char *b, int l) + { + unsigned int i, version, seclen, skip, prog, pcr_pid, pid; + unsigned char *buf; + + skip = collect_section(&(pmt->section), pusi, b, l); + + if(!skip) + return 0; + + //now we know the section is complete + pmt->section.pos = 0; + pmt->pids_cnt = 0; + buf = &(pmt->section.buf[skip]); + + if(buf[0] != 2) //pmt id + return 0; + if(!(buf[5] & 1)) //not yet valid + return 0; + + prog = (buf[3] << 8) | buf[4]; + version = (buf[5] >> 1) & 0x1F; + + if(pmt->version == version) //PMT didn't change + return 1; + + seclen = ((buf[1] & 0x0F) << 8) | buf[2]; + pcr_pid = ((buf[8] & 0x1F) << 8) | buf[9]; + pmt->pids[pmt->pids_cnt++] = pcr_pid; + fprintf(stderr, "\nPROGRAM: %d, pcr_pid: %d, version: %d vs %d\n", prog, pcr_pid, pmt->version, version); + skip = ((buf[10] & 0x0F) << 8) | buf[11]; + if(skip+12 > seclen) + return 0; + + i = skip+12; + while(i+5<seclen) + { + pid = ((buf[i+1] & 0x1F) << 8) | buf[i+2]; + pmt->pids[pmt->pids_cnt++] = pid; + skip = ((buf[i+3] & 0x0F) << 8) | buf[i+4]; + i += skip+5; + fprintf(stderr, "prog %d, PID: %d, count: %d, type: 0x%x\n", prog, pid, pmt->pids_cnt, buf[i]); + } + pmt->version = version; + } static void parse_ts_packet(unsigned char *buf) |
From: <ni...@us...> - 2007-03-18 12:40:42
|
Update of /cvsroot/dvbtools/dvbstream In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv14144 Modified Files: dvbstream.c Log Message: 1000l, fixed wrong realloc()ation of PAT.entries Index: dvbstream.c =================================================================== RCS file: /cvsroot/dvbtools/dvbstream/dvbstream.c,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** dvbstream.c 17 Mar 2007 00:16:33 -0000 1.40 --- dvbstream.c 17 Mar 2007 00:19:11 -0000 1.41 *************** *** 504,508 **** if(PAT.entries_cnt != num) { ! PAT.entries = realloc(PAT.entries, num); PAT.entries_cnt = num; PMT.entries = realloc(PMT.entries, sizeof(pmt_t)*num); --- 504,508 ---- if(PAT.entries_cnt != num) { ! PAT.entries = realloc(PAT.entries, sizeof(pat_entry)*num); PAT.entries_cnt = num; PMT.entries = realloc(PMT.entries, sizeof(pmt_t)*num); |