[mythtv] mplayer + nuv/(mpeg4|rtjpeg) patch

Carlos Talbot carlos at talbot.net
Sat Apr 5 14:06:37 EST 2003

Matt Zimmerman wrote:

>It looks like your patch was against an older version of my patch (a diff
>between my tree and yours reverted some significant fixes).  I've merged in
>your changes to my current tree, updated the whole thing to 0.90rc5, and the
>result is attached.  Let me know if this looks and works OK for you (and
>anyone else who is interested).

I've been experiencing mencoder segfaults with both Matt and Andrew's 
patches. It's odd but it only occurs with certain .nuv files. I can't 
determine the underlying variable; whether it's a recent cvs version, 
video resolution, or audio rate. I'm using the most recent version of 
Myth cvs. I just downloaded mplayer rc5, patched it with Matt's new 
patch and ran mencoder with the following options through gdb below. 
Notice that the len variable is set to 972138444 which might indicate 
bad parsing of the .nuv file.


[ctalbot at htpc MPlayer-0.90rc5]$ gdb mencoder
GNU gdb 5.3-22mdk (Mandrake Linux)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-mandrake-linux-gnu"...
(gdb) set args -ovc copy -oac copy 
/data/store/7294_20030404070000_20030404073000.nuv -o test.avi
(gdb) run
Starting program: /home/ctalbot/MPlayer-0.90rc5/mencoder -ovc copy -oac 
copy /data/store/7294_20030404070000_20030404073000.nuv -o test.avi
[New Thread 16384 (LWP 7591)]
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale

MEncoder 0.90rc5-3.2.2 (C) 2000-2003 Arpad Gereoffy (see DOCS)

CPU: Advanced Micro Devices  (Family: 6, Stepping: 0)
Detected cache-line size is 64 bytes
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Reading /home/ctalbot/.mplayer/codecs.conf: can't open 
'/home/ctalbot/.mplayer/codecs.conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: 50 audio & 136 video codecs
File not found: 'frameno.avi'
Reading config file /home/ctalbot/.mplayer/mencoder: No such file or 
success: format: 0  data: 0x0 - 0x1AB516B1
NuppelVideo file format detected.
Detected MythTV stream, reading extended format information
channels=2 bitspersample=16 samplerate=32000 audio_compression_ratio=11
[V] filefmt:13  fourcc:0x58564944  size:544x480  fps:29.97  ftime:=0.0334
videocodec: framecopy (544x480 24bpp fourcc=58564944)
audiocodec: framecopy (format=55 chans=2 rate=32000 bits=16 bps=12000 
Writing AVI header...
Pos:   8.5s    255f ( 0%)   0fps Trem:   0min 414mb  A-V:-0.030 [2771:96]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 7591)]
0x080ec2df in new_demux_packet (len=972138444) at demuxer.h:149
149       if(len) memset(dp->buffer+len,0,8);
(gdb) bt full
#0  0x080ec2df in new_demux_packet (len=972138444) at demuxer.h:149
        __s = (void *) 0x39f1a7cc
        dp = (demux_packet_t *) 0x835de88
#1  0x080e9be7 in ds_read_packet (ds=0x834b2d8, stream=0x39f1a7cc,
    len=137748104, pts=-637562.125, pos=3212299, flags=0) at demuxer.c:251
        dp = (demux_packet_t *) 0x403a19b0
#2  0x080fe825 in demux_nuv_fill_buffer (demuxer=0x834aa08) at 
        rtjpeg_frameheader = {frametype = 86 'V', comptype = 43 '+',
  keyframe = 6 '\006', filters = 76 'L', timecode = -637562097,
  packetlength = 972138432}
        priv = (nuv_priv_t *) 0x834b420
        want_audio = 1
#3  0x080e9f3f in ds_fill_buffer (ds=0x834b270) at demuxer.c:387
        demux = (demuxer_t *) 0x834aa08
#4  0x080ea148 in demux_read_data (ds=0x834b270, mem=0x405da008 "ÿûx\004",
    len=4272) at demuxer.c:406
        x = 0
        bytes = 1728
#5  0x0804debc in main (argc=972138444, argv=0x39f1a7cc) at mencoder.c:941
        stream = (stream_t *) 0x83496b8
        demuxer = (demuxer_t *) 0x834aa08
        stream2 = (stream_t *) 0x39f1a7cc
        demuxer2 = (demuxer_t *) 0x0
        d_audio = (demux_stream_t *) 0x834b270
        d_video = (demux_stream_t *) 0x834b2d8
        d_dvdsub = (demux_stream_t *) 0x834b340
        sh_audio = (sh_audio_t *) 0x834b4d0
        sh_video = (sh_video_t *) 0x834b438
        file_format = 0
        i = 0
        vobsub_writer = (void *) 0x0
        ptimer_start = 1597224911
        audiorate = 16
        videorate = 19
        audiosamples = 19
        videosamples = 256
        skippedframes = 0
        duplicatedframes = 0
        badframes = 0
        mux_a = (muxer_stream_t *) 0x834b960
        mux_v = (muxer_stream_t *) 0x834b8d0
        muxer_f_size = -4611715980119238800
        lame = (lame_global_flags *) 0x0
        v_pts_corr = -0.030399408428151125
        v_timer_corr = 2.7761951957670292e-05
        filelist = (m_entry_t *) 0x1770
        filename = 0x1770 <Address 0x1770 out of bounds>
        decoded_frameno = 255
        next_frameno = -1
        timer_start = 1597224848
#6  0x402867f7 in __libc_start_main () from /lib/i686/libc.so.6
No symbol table info available.

More information about the mythtv-dev mailing list