[mythtv] New MPEG2 commercial-cut code ready for testing

Bryan Mayland bmayland at leoninedev.com
Mon Nov 14 11:16:40 EST 2005


Geoffrey Hausheer wrote:
> I have found a couple of trivial fixes that may address the blockiness
> and the hanging (and a segfault).  Go here:
> http://www.pblue.org/myth/mpeg2fix-0.8.tgz
>   
    I get segfaults right at the beginning of every stream I've tried 
(has occurred in 0.4, 0.7, 0.8, haven't tested other versions).
Opening /mnt/store/1015_20051105183000.mpg
Input #0, mpeg, from '/mnt/store/1015_20051105183000.mpg':
  Duration: N/A, bitrate: N/A
  Stream #0.0[0x1e0], 29.97 fps: Video: mpeg2video, yuv420p, 640x480, 
9000 kb/s
  Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, stereo, 384 kb/s
#0 PTS:36036 Delta: 0.000000ms queue: 12
#1 PTS:34684 Delta: 15.022222ms queue: 2
Warning, QMAT_SHIFT is larger then 21, overflows possible
Segmentation fault      (core dumped)

Backtrace:
#0  0xb7436fc6 in dsputil_init_mmx ()
   from /usr/local/lib/libmythavcodec-0.18.so.0
#1  0x083404d0 in ?? ()

Bonus: Shell script to pull cutlist from DB and call mpeg2fix
#!/bin/sh

if [ -z "$1" ] ; then
        echo Usage: $0 [filename]
    exit 1
fi

IN_FILE=`basename $1`

  mysql -s -B -u mythtv --password=mythtv mythconverg > /tmp/cut << EOF
    SELECT mark FROM recordedmarkup rm
    INNER JOIN recorded rd
      ON rm.chanid = rd.chanid AND rm.starttime = rd.starttime
    WHERE rd.basename = '$IN_FILE'
    AND rm.type IN (4,5)
    ORDER BY rm.mark, rm.type
EOF

CUTLIST_R=`cat /tmp/cut | awk '((NR%2)==0){printf "%d ",$1} 
((NR%2)==1){printf "-c %d-",$1}'`

./mpeg2fix -i $1 -o test.mpg $CUTLIST_R




More information about the mythtv-dev mailing list