Hi, there are known bugs in Qt4 port, which make it unusable, and for which I submitted patches to the upstream about a year ago. They were never applied to SVN, but hopefully they can be included in the Debian package.
Regards, -- Jindrich Makovicka
Fixes broken Qt4 UI (no response to mouse after loading a video) diff -xMakefile -ur orig/dvbcut/src/dvbcut.cpp dvbcut/src/dvbcut.cpp --- orig/dvbcut/src/dvbcut.cpp 2010-08-18 10:16:32.560600431 +0200 +++ dvbcut/src/dvbcut.cpp 2010-08-18 10:15:59.320813795 +0200 @@ -2192,7 +2192,7 @@ } // propagate to base class - //return ui->eventFilter(watched, e); + return Q3MainWindow::eventFilter(watched, e); } int
Fixes various type warnings on 64bit arch diff -xMakefile -ur orig/dvbcut/src/buffer.cpp dvbcut/src/buffer.cpp --- orig/dvbcut/src/buffer.cpp 2009-07-05 09:52:37.000000000 +0200 +++ dvbcut/src/buffer.cpp 2010-08-18 10:11:36.639543041 +0200 @@ -385,7 +385,7 @@ posix_fadvise(i->fd, 0, relpos, POSIX_FADV_DONTNEED); } #endif - size_t len = mmapsize; + ssize_t len = mmapsize; if (newpos + len > i->end) len = i->end - newpos; void *ptr = ::mmap(0, len, PROT_READ, MAP_SHARED, i->fd, relpos); @@ -451,7 +451,7 @@ return -1; needseek = false; } - size_t len = size - writepos; + ssize_t len = size - writepos; if (len > i->end - seekpos) len = i->end - seekpos; assert(len > 0); diff -xMakefile -ur orig/dvbcut/src/index.cpp dvbcut/src/index.cpp --- orig/dvbcut/src/index.cpp 2008-12-02 16:46:34.000000000 +0100 +++ dvbcut/src/index.cpp 2010-08-18 10:09:40.380128597 +0200 @@ -309,7 +309,7 @@ int pdelta = pictures - lastiframe + seqnr - p[lastiframe].getsequencenumber(); if (pdelta * framepts < ptsdelta) fprintf(stderr, "missing frames in GOP (%d, %d): %lld\n", - lastiframe, pictures, ptsdelta / framepts - pdelta); + lastiframe, pictures, (long long)ptsdelta / framepts - pdelta); } lastiframe = pictures; } diff -xMakefile -ur orig/dvbcut/src/mpegmuxer.cpp dvbcut/src/mpegmuxer.cpp --- orig/dvbcut/src/mpegmuxer.cpp 2009-07-05 09:52:37.000000000 +0200 +++ dvbcut/src/mpegmuxer.cpp 2010-08-18 10:06:44.383989266 +0200 @@ -640,7 +640,7 @@ } if (len) { - fprintf(stderr,"str=%d len=%d aulist.size=%d packlist.size=%d\n", + fprintf(stderr,"str=%d len=%d aulist.size=%zd packlist.size=%zd\n", str,len,s->aulist.size(),s->packlist.size()); assert(len==0); } diff -xMakefile -ur orig/dvbcut/src/mpgfile.cpp dvbcut/src/mpgfile.cpp --- orig/dvbcut/src/mpgfile.cpp 2008-06-09 08:23:18.000000000 +0200 +++ dvbcut/src/mpgfile.cpp 2010-08-18 10:08:48.369298263 +0200 @@ -618,7 +618,7 @@ for(it=sd->itemlist().begin();it!=sd->itemlist().end();++it) fprintf(stderr," fileposition:%lld/%d bufferposition:%d flags:%x pts:%s\n", - it->fileposition.packetposition(),it->fileposition.packetoffset(), + (long long)it->fileposition.packetposition(),it->fileposition.packetoffset(), it->bufferposition,it->flags,ptsstring(it->pts).c_str()); fprintf(stderr,"nx->bufferposition:%d it->bufferposition:%d\n", @@ -626,7 +626,7 @@ for(int i=0;i<MAXAVSTREAMS;++i) if (sh.stream[i]) - fprintf(stderr,"stream %d%s, itemlist.size():%d\n", + fprintf(stderr,"stream %d%s, itemlist.size():%zd\n", i,(sh.stream[i]==sd)?"*":"",sh.stream[i]->itemlist().size()); abort(); diff -xMakefile -ur orig/dvbcut/src/tsfile.cpp dvbcut/src/tsfile.cpp --- orig/dvbcut/src/tsfile.cpp 2008-06-09 08:23:18.000000000 +0200 +++ dvbcut/src/tsfile.cpp 2010-08-18 10:05:39.856698826 +0200 @@ -337,7 +337,7 @@ && bnum<TF5XXXPVR_MAX) { // bookmark is stored in 128 resp. 94kbyte units bookmark*=unit; - if(verbose) fprintf(stderr,"BOOKMARK[%d] = %lld\n",bnum,bookmark); + if(verbose) fprintf(stderr,"BOOKMARK[%d] = %lld\n",bnum,(long long)bookmark); // fill bookmark vector with byte positions byte_bookmarks.push_back(bookmark); bnum++; @@ -391,7 +391,7 @@ // changed byte order compared to old receivers!?! while ((bookmark=(buffer[boff+3]<<24)|(buffer[boff+2]<<16)|(buffer[boff+1]<<8)|buffer[boff]) && bnum<TF7700HDPVR_MAX) { - if(verbose) fprintf(stderr,"BOOKMARK[%d] = %lld\n",bnum,bookmark); + if(verbose) fprintf(stderr,"BOOKMARK[%d] = %lld\n",bnum,(long long)bookmark); // bookmark is stored in seconds now, but we'll use full pts! bookmark*=unit; // fill bookmark vector with times @@ -400,7 +400,7 @@ boff+=4; } } else // receiver model identified but file to short! - fprintf(stderr,"ADD-File probabely corrupted (%dbytes to short), discarding bookmarks!\n",TF7700HDPVR_LEN-len); + fprintf(stderr,"ADD-File probabely corrupted (%zdbytes to short), discarding bookmarks!\n",TF7700HDPVR_LEN-len); // terminate free(buffer);
Remove bogus file: prefix when saving the index file, remove useless overwrite confirmation. --- a/src/dvbcut.cpp~ 2010-08-18 12:10:59.531214776 +0200 +++ b/src/dvbcut.cpp 2010-08-18 12:20:31.222922627 +0200 @@ -1869,13 +1869,14 @@ u.setProtocol(QString("file")); u.setPath(QString::fromStdString(idxfilename)); if (chdir((const char*)u.dirPath()) == -1) chdir("/"); - QString relname = QString("file:") + u.fileName(); + QString relname = u.fileName(); QString s=QFileDialog::getSaveFileName( - relname, - settings().idxfilter, this, - "Choose index file...", - "Choose the name of the index file" ); + "Choose the name of the index file", + relname, + settings().idxfilter, + 0, + QFileDialog::DontConfirmOverwrite); if (s.isEmpty()) { delete mpg; mpg=0;