Changeset 17306


Ignore:
Timestamp:
07/23/12 20:20:29 (12 years ago)
Author:
nit
Message:

[titan] testfix play eof

Location:
titan/titan
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/ca.h

    r15282 r17306  
    3939                //flush buffer
    4040                if(flag == 1)
    41                         while(dvbreadfd(dvbnode->fd, buf, 0, 256, -1) > 0);
     41                        while(dvbreadfd(dvbnode->fd, buf, 0, 256, -1, 0) > 0);
    4242
    4343                //flush queue
  • titan/titan/dvb.h

    r17303 r17306  
    5151}
    5252
    53 int dvbreadfd(int fd, unsigned char *buf, int pos, int count, int tout)
     53//flag 0: eof with timeout
     54//flag 1: eof without timeout
     55int dvbreadfd(int fd, unsigned char *buf, int pos, int count, int tout, int flag)
    5456{
    5557        struct timeval timeout;
     
    8284                        usleep(100000);
    8385#else
    84                         tout = tout - 50000;
    85                         usleep(50000);
     86                        tout = tout - 1000;
     87                        usleep(1000);
    8688#endif
    87                         if(tout > 0) goto retry;
     89                        if(flag == 0 && tout > 0) goto retry;
    8890                        debug(250, "dvb read timeout fd=%d", fd);
    8991                }
     
    120122{
    121123        if(node == NULL) return -2;
    122         return dvbreadfd(node->fd, buf, pos, count, tout);
     124        return dvbreadfd(node->fd, buf, pos, count, tout, 0);
    123125}
    124126
     
    135137
    136138                lseek64(fd, pos, SEEK_SET);
    137                 int ret = dvbreadfd(fd, packet, 0, tssize, -1);
     139                int ret = dvbreadfd(fd, packet, 0, tssize, -1, 0);
    138140                if(ret != tssize)
    139141                {
     
    891893                }
    892894
    893                 int ret = dvbreadfd(fd, packet, 0, tssize, -1);
     895                int ret = dvbreadfd(fd, packet, 0, tssize, -1, 0);
    894896                if(ret != tssize && ret != 188)
    895897                {
  • titan/titan/header.h

    r17249 r17306  
    361361//dvb.h
    362362unsigned char* dvbgetsdt(struct dvbdev* fenode, int secnr, int timeout);
    363 int dvbreadfd(int fd, unsigned char *buf, int pos, int count, int tout);
     363int dvbreadfd(int fd, unsigned char *buf, int pos, int count, int tout, int flag);
    364364int dvbwrite(int fd, unsigned char* buf, int count, int tout);
    365365int dvbgetdate(time_t* time, int timeout);
  • titan/titan/httpd.h

    r16492 r17306  
    450450                        while(readret > 0 && auth == 0)
    451451                        {
    452                                 readret = dvbreadfd(filefd, buf, 0, MINMALLOC, 1000);
     452                                readret = dvbreadfd(filefd, buf, 0, MINMALLOC, 1000, 0);
    453453                                if(readret > 0)
    454454                                        socksend(connfd, buf, readret, 5000 * 1000);
  • titan/titan/record.h

    r17250 r17306  
    353353#ifdef SIMULATE
    354354                servicenode->recsrcfd = fd;
    355                 readret = dvbreadfd(servicenode->recsrcfd, buf, 0, recbsize, readtimeout);
     355                readret = dvbreadfd(servicenode->recsrcfd, buf, 0, recbsize, readtimeout, 0);
    356356                usleep(1000);
    357357#else
     
    359359                {
    360360                        pthread_mutex_lock(&status.tsseekmutex);
    361                         readret = dvbreadfd(servicenode->recsrcfd, buf, 0, recbsize, readtimeout);
     361                        readret = dvbreadfd(servicenode->recsrcfd, buf, 0, recbsize, readtimeout, 1);
    362362                        pthread_mutex_unlock(&status.tsseekmutex);
    363363                }
    364364                else
    365                         readret = dvbreadfd(servicenode->recsrcfd, buf, 0, recbsize, readtimeout);
     365                        readret = dvbreadfd(servicenode->recsrcfd, buf, 0, recbsize, readtimeout, 0);
    366366#endif
    367367                if(readret > 0)
Note: See TracChangeset for help on using the changeset viewer.