[mythtv-commits] Ticket #12213: lossless transcode fails on master

MythTV noreply at mythtv.org
Thu Jul 17 17:29:54 UTC 2014


#12213: lossless transcode fails on master
-------------------------------------------+-------------------------
     Reporter:  George Nassas <gnassas@…>  |      Owner:  jyavenard
         Type:  Bug Report - General       |     Status:  new
     Priority:  minor                      |  Milestone:  unknown
    Component:  MythTV - Mythtranscode     |    Version:  Unspecified
     Severity:  medium                     |   Keywords:
Ticket locked:  0                          |
-------------------------------------------+-------------------------
 This started happening after the ffmpeg resyncs about a month ago. There
 were a lot of fixups around heap management so I held back hoping one of
 the would address the problem but still no luck.

 I'm doing lossless transcode on OTA-captured ATSC mpeg2 videos which has
 worked reliably in the past. Now I get a:

 {{{
 #0  0x00007fffeac06545 in *__GI_raise (sig=<optimized out>) at
 ../nptl/sysdeps/unix/sysv/linux/raise.c:64
 #1  0x00007fffeac097c0 in *__GI_abort () at abort.c:92
 #2  0x00007fffeac415fb in __libc_message (do_abort=<optimized out>,
 fmt=<optimized out>) at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
 #3  0x00007fffeac4ae46 in malloc_printerr (action=3, str=0x7fffead2127d
 "corrupted double-linked list", ptr=<optimized out>) at malloc.c:6312
 #4  0x00007fffeac4b2bd in malloc_consolidate (av=<optimized out>) at
 malloc.c:5198
 #5  0x00007fffeac4c778 in _int_free (av=0x7fffeaf5ae80, p=0x32bf720) at
 malloc.c:5063
 #6  0x00007fffeac4fbec in *__GI___libc_free (mem=<optimized out>) at
 malloc.c:3738
 #7  0x00007ffff6132c80 in av_free (ptr=0x32bf760) at libavutil/mem.c:231
 #8  0x00007ffff61235e1 in av_buffer_default_free (opaque=0x0,
 data=0x32bf760 "") at libavutil/buffer.c:62
 #9  0x00007ffff6123b0e in buffer_pool_free (pool=0x20f3380) at
 libavutil/buffer.c:230
 #10 0x00007ffff6123b8e in av_buffer_pool_uninit (ppool=0x78bd80) at
 libavutil/buffer.c:246
 #11 0x00007ffff69be67a in avcodec_close (avctx=0x7a3aa0) at
 libavcodec/utils.c:2625
 #12 0x0000000000430bbe in MPEG2fixup::BuildFrame (this=0x76c4f0,
 pkt=0x7fffffffc9b0, fname=...) at mpeg2fix.cpp:1250
 #13 0x0000000000433a67 in MPEG2fixup::ConvertToI (this=0x76c4f0,
 orderedFrames=0x7fffffffce00, headPos=0) at mpeg2fix.cpp:1749
 #14 0x0000000000438270 in MPEG2fixup::Start (this=0x76c4f0) at
 mpeg2fix.cpp:2234
 #15 0x0000000000410a1e in main (argc=6, argv=0x7fffffffeb18) at
 main.cpp:676
 }}}

 or sometimes

 {{{
 #0  0x00007fffeac06545 in *__GI_raise (sig=<optimized out>) at
 ../nptl/sysdeps/unix/sysv/linux/raise.c:64
 #1  0x00007fffeac097c0 in *__GI_abort () at abort.c:92
 #2  0x00007fffeac415fb in __libc_message (do_abort=<optimized out>,
 fmt=<optimized out>) at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
 #3  0x00007fffeac4ae46 in malloc_printerr (action=3, str=0x7fffead2127d
 "corrupted double-linked list", ptr=<optimized out>) at malloc.c:6312
 #4  0x00007fffeac4b2bd in malloc_consolidate (av=<optimized out>) at
 malloc.c:5198
 #5  0x00007fffeac4c778 in _int_free (av=0x7fffeaf5ae80, p=0x32bf720) at
 malloc.c:5063
 #6  0x00007fffeac4fbec in *__GI___libc_free (mem=<optimized out>) at
 malloc.c:3738
 #7  0x00007ffff6132c80 in av_free (ptr=0x32bf760) at libavutil/mem.c:231
 #8  0x00007ffff61235e1 in av_buffer_default_free (opaque=0x0,
 data=0x32bf760 "") at libavutil/buffer.c:62
 #9  0x00007ffff6123b0e in buffer_pool_free (pool=0x20f3380) at
 libavutil/buffer.c:230
 #10 0x00007ffff6123b8e in av_buffer_pool_uninit (ppool=0x78bd80) at
 libavutil/buffer.c:246
 #11 0x00007ffff69be67a in avcodec_close (avctx=0x7a3aa0) at
 libavcodec/utils.c:2625
 #12 0x0000000000430bbe in MPEG2fixup::BuildFrame (this=0x76c4f0,
 pkt=0x7fffffffc9b0, fname=...) at mpeg2fix.cpp:1250
 #13 0x0000000000433a67 in MPEG2fixup::ConvertToI (this=0x76c4f0,
 orderedFrames=0x7fffffffce00, headPos=0) at mpeg2fix.cpp:1749
 #14 0x0000000000438270 in MPEG2fixup::Start (this=0x76c4f0) at
 mpeg2fix.cpp:2234
 #15 0x0000000000410a1e in main (argc=6, argv=0x7fffffffeb18) at
 main.cpp:676

 }}}

 Commenting out the offending lines just moves the problem somewhere else
 so I assume the heap has gotten corrupted earlier in the process and the
 crash just exposes that fact.

 Happy to get in with gdb and figure this out but I'd need pointers on what
 to look for.

--
Ticket URL: <https://code.mythtv.org/trac/ticket/12213>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list