no I meant that you need to just let it run (dumpingto the screen).
you still have the same buffering going on.  It is 23 minutes into the
program though, so it did get through quite a bit of it.

Ah yes... I'm being an idiot. Here's the *unbuffered* output up to where it stops:
AUD: pts: 124395480
Id:1:  0:23:02.172 V:2602264 6159 A:609771 3783
AUD: pts: 124397640
Id:1:  0:23:02.196 V:2602264 6159 A:609195 3739
AUD: pts: 124399800
Id:1:  0:23:02.220 V:2602264 6159 A:608619 3695
AUD: pts: 124401960
Id:1:  0:23:02.244 V:2602264 6159 A:608043 3651
AUD: pts: 124404120
Id:1:  0:23:02.268 V:2602264 6159 A:607467 3607

Oh, and this is a video-tape transfer (thus the errors in the stream). It's only got about 6 megs out of 720 megs to go... basically crunched through the whole file.

CFLAGS = -g -pipe ...
(you don't need to remove the -g when you're done, it will have
virtually no impact on perfromance), besides which, mythtv is
statically linked against libmpeg2.

Again, idiot me forgot to install the new libmpeg2... ldd used the old one at first. Anyway, here's the gdb:

Program received signal SIGINT, Interrupt.
[Switching to Thread -1212397888 (LWP 1459)]
0x0804a075 in process_video (pktPtr=0xbf8a5f88, decode_pic=0) at mpeg2fix.c:488
488         last_pos = (pkt->size-mpeg2_getpos(dec)) - 4;
(gdb) thread apply all bt

Thread 2 (Thread -1214850128 (LWP 1462)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x450c6a86 in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib/tls/libpthread.so.0
#2  0x0804962a in fill_buffers (r=0xbf8a1f30, finish=0) at mpeg2fix.c:171
#3  0x0804d441 in check_times (mx=0xb796c150, video_ok=0xb796c048, 
audio_ok=0xb796c0d0,
    ac3_ok=0xb796c050, start=0xb796c04c) at multiplex.c:411
#4  0x080497a8 in replex_start (data=0xb796c150) at mpeg2fix.c:230
#5  0x450c4341 in start_thread () from /lib/tls/libpthread.so.0
#6  0x44f446fe in clone () from /lib/tls/libc.so.6

Thread 1 (Thread -1212397888 (LWP 1459)):
#0  0x0804a075 in process_video (pktPtr=0xbf8a5f88, decode_pic=0) at 
mpeg2fix.c:488
#1  0x0804a536 in get_frame (pkt=0xbf8a31c0, vid=0xbf8a1efc, aud=0xbf8a1f04)
    at mpeg2fix.c:620
#2  0x0804aff8 in main (argc=6, argv=0xbf8aa824) at mpeg2fix.c:897


(note it may stop in a different place).  Besides the actual
backtrace, I need you to find process_video (in this case it is #4),
then do:
frame 4 (use the actual # in place of '4')
print state
print *info

(gdb) frame 0
#0  process_video (pktPtr=0xbf8a5f88, decode_pic=0) at mpeg2fix.c:466
466         if(! decode_pic) {
(gdb) print state
$1 = 0
(gdb) print *info
$2 = {sequence = 0x8074278, gop = 0x0, current_picture = 0x0, 
current_picture_2nd = 0x0,
  current_fbuf = 0x0, display_picture = 0x0, display_picture_2nd = 0x0,
  display_fbuf = 0x0, discard_fbuf = 0x0, user_data = 0x0, user_data_len = 0}
(gdb)

        I think I'm following... never got much into debugging with gdb.

-Cory

--

*************************************************************************
* Cory Papenfuss                                                        *
* Electrical Engineering candidate Ph.D. graduate student               *
* Virginia Polytechnic Institute and State University                   *
*************************************************************************

_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to