Changeset 18582
- Timestamp:
- 11/15/12 20:55:30 (11 years ago)
- Location:
- titan/titan
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
titan/titan/dvb.h
r18554 r18582 740 740 status.aktservice->channel->pmtpid = pmtpid; 741 741 dvbgetinfo(pmtbuf, status.aktservice->channel); 742 free(status.aktservice->pmtbuf);743 status.aktservice->pmtbuf = pmtbuf;744 status.aktservice->pmtlen = len;745 change = 1;746 742 747 743 debug(200, "pmt dynamic change oldapid=%d apid=%d oldvpid=%d vpid=%d\n", audiopid, status.aktservice->channel->audiopid, videopid, status.aktservice->channel->videopid); 748 744 749 745 if(status.aktservice->channel->audiopid != audiopid || status.aktservice->channel->videopid != videopid) 750 { 751 audiostop(status.aktservice->audiodev); 752 videostop(status.aktservice->videodev, 0); 753 dmxsetpesfilter(status.aktservice->dmxaudiodev, status.aktservice->channel->audiopid, -1, DMX_OUT_DECODER, DMX_PES_AUDIO, 0); 754 dmxsetpesfilter(status.aktservice->dmxvideodev, status.aktservice->channel->videopid, -1, DMX_OUT_DECODER, DMX_PES_VIDEO, 0); 755 //dmxsetpesfilter(status.aktservice->dmxpcrdev, status.aktservice->channel->pcrpid, -1, DMX_OUT_DECODER, DMX_PES_PCR, 0); 756 audioplay(status.aktservice->audiodev); 757 videoplay(status.aktservice->videodev); 758 } 746 change = 1; 759 747 } 760 748 761 749 m_unlock(&status.servicemutex, 2); 762 if(change == 0) free(pmtbuf); 750 free(pmtbuf); 751 752 if(change == 1) 753 servicestart(status.aktservice->channel, NULL, NULL, 3); 763 754 } 764 755 -
titan/titan/epg.h
r18575 r18582 1 1 #ifndef EPG_H 2 2 #define EPG_H 3 4 struct epg* addoldentryepg(struct channel* chnode, struct epg* newnode, int flag); 3 5 4 6 void debugepg() … … 861 863 if(flag == 0) m_lock(&status.epgmutex, 4); 862 864 863 free(newnode->title); 864 newnode->title = NULL; 865 free(newnode->subtitle); 866 newnode->subtitle = NULL; 867 free(newnode->desc); 868 newnode->desc = NULL; 869 newnode->desclen = 0; 870 newnode->desccomplen = 0; 865 clearepgentry(newnode); 871 866 872 867 if(newnode == chnode->epg) … … 950 945 } 951 946 */ 952 //check if new epg overlapps prev epg953 if(newnode->starttime < prev->endtime)954 {955 struct epg *tmp = prev->prev;956 addoldentryepg(chnode, prev, 1);957 prev = tmp;958 }959 947 //check if new epg overlaps next epg 960 948 while(node != NULL && newnode->endtime > node->starttime) … … 964 952 addoldentryepg(chnode, tmp, 1); 965 953 } 954 //check if new epg overlapps prev epg 955 if(newnode->starttime < prev->endtime) 956 { 957 //struct epg *tmp = prev->prev; 958 //addoldentryepg(chnode, prev, 1); 959 //prev = tmp; 960 961 clearepgentry(prev); 962 prev->eventid = eventid; 963 prev->version = version; 964 prev->starttime = starttime; 965 prev->endtime = endtime; 966 prev->parentalrating = 0; 967 968 free(newnode); newnode == NULL; 969 if(flag == 0) m_unlock(&status.epgmutex, 4); 970 return prev; 971 } 966 972 } 967 973 … … 990 996 return; 991 997 } 998 999 clearepgentry(node); 1000 1001 free(node); 1002 node = NULL; 1003 1004 debug(1000, "out"); 1005 } 1006 1007 void clearepgentry(struct epg* node) 1008 { 1009 if(node == NULL) return; 992 1010 993 1011 free(node->title); … … 997 1015 free(node->desc); 998 1016 node->desc = NULL; 999 1000 free(node); 1001 node = NULL; 1002 1003 debug(1000, "out"); 1017 node->desclen = 0; 1018 node->desccomplen = 0; 1004 1019 } 1005 1020 … … 1037 1052 } 1038 1053 1039 free(node->title); 1040 node->title = NULL; 1041 free(node->subtitle); 1042 node->subtitle = NULL; 1043 free(node->desc); 1044 node->desc = NULL; 1054 clearepgentry(node); 1045 1055 1046 1056 free(node);
Note: See TracChangeset
for help on using the changeset viewer.