[FFmpeg-trac] #1135(avcodec:new): ffmpeg/ffplay crashes with lowres=1 or lowres=3 with 1080i mpeg2 video on arm-neon

FFmpeg trac at avcodec.org
Tue Mar 27 18:41:16 CEST 2012

#1135: ffmpeg/ffplay crashes with lowres=1 or lowres=3 with 1080i mpeg2 video on
             Reporter:  yiwang      |                    Owner:
                 Type:  defect      |                   Status:  new
             Priority:  normal      |                Component:  avcodec
              Version:  git-master  |               Resolution:
             Keywords:  arm         |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |

Comment (by yiwang):

 (gdb) disass
 Dump of assembler code for function ff_put_h264_chroma_mc4_neon:
 0x00148308 <ff_put_h264_chroma_mc4_neon+0>:     push    {r4, r5, r6, r7,
 0x0014830c <ff_put_h264_chroma_mc4_neon+4>:     ldrd    r4, [sp, #20]
 0x00148310 <ff_put_h264_chroma_mc4_neon+8>:     pld     [r1]
 0x00148314 <ff_put_h264_chroma_mc4_neon+12>:    pld     [r1, r2]
 0x00148318 <ff_put_h264_chroma_mc4_neon+16>:    muls    r7, r4, r5
 0x0014831c <ff_put_h264_chroma_mc4_neon+20>:    rsb     r6, r7, r5, lsl #3
 0x00148320 <ff_put_h264_chroma_mc4_neon+24>:    rsb     r12, r7, r4, lsl
 0x00148324 <ff_put_h264_chroma_mc4_neon+28>:    sub     r4, r7, r4, lsl #3
 0x00148328 <ff_put_h264_chroma_mc4_neon+32>:    sub     r4, r4, r5, lsl #3
 0x0014832c <ff_put_h264_chroma_mc4_neon+36>:    add     r4, r4, #64     ;
 0x00148330 <ff_put_h264_chroma_mc4_neon+40>:    beq     0x1483bc
 0x00148334 <ff_put_h264_chroma_mc4_neon+44>:    add     r5, r1, r2
 0x00148338 <ff_put_h264_chroma_mc4_neon+48>:    vdup.8  d0, r4
 0x0014833c <ff_put_h264_chroma_mc4_neon+52>:    lsl     r4, r2, #1
 0x00148340 <ff_put_h264_chroma_mc4_neon+56>:    vdup.8  d1, r12
 0x00148344 <ff_put_h264_chroma_mc4_neon+60>:    vld1.8  {d4}, [r1], r4
 0x00148348 <ff_put_h264_chroma_mc4_neon+64>:    vdup.8  d2, r6
 0x0014834c <ff_put_h264_chroma_mc4_neon+68>:    vld1.8  {d6}, [r5], r4
 0x00148350 <ff_put_h264_chroma_mc4_neon+72>:    vdup.8  d3, r7
 0x00148354 <ff_put_h264_chroma_mc4_neon+76>:    vext.8  d5, d4, d5, #1
 0x00148358 <ff_put_h264_chroma_mc4_neon+80>:    vext.8  d7, d6, d7, #1
 0x0014835c <ff_put_h264_chroma_mc4_neon+84>:    vtrn.32 d4, d5
 0x00148360 <ff_put_h264_chroma_mc4_neon+88>:    vtrn.32 d6, d7
 0x00148364 <ff_put_h264_chroma_mc4_neon+92>:    vtrn.32 d0, d1
 0x00148368 <ff_put_h264_chroma_mc4_neon+96>:    vtrn.32 d2, d3
 0x0014836c <ff_put_h264_chroma_mc4_neon+100>:   pld     [r5]
 0x00148370 <ff_put_h264_chroma_mc4_neon+104>:   vmull.u8        q8, d4, d0
 0x00148374 <ff_put_h264_chroma_mc4_neon+108>:   vmlal.u8        q8, d6, d2
 0x00148378 <ff_put_h264_chroma_mc4_neon+112>:   vld1.8  {d4}, [r1], r4
 0x0014837c <ff_put_h264_chroma_mc4_neon+116>:   vext.8  d5, d4, d5, #1
 0x00148380 <ff_put_h264_chroma_mc4_neon+120>:   vtrn.32 d4, d5
 0x00148384 <ff_put_h264_chroma_mc4_neon+124>:   vmull.u8        q9, d6, d0
 0x00148388 <ff_put_h264_chroma_mc4_neon+128>:   vmlal.u8        q9, d4, d2
 0x0014838c <ff_put_h264_chroma_mc4_neon+132>:   vld1.8  {d6}, [r5], r4
 0x00148390 <ff_put_h264_chroma_mc4_neon+136>:   vadd.i16        d16, d16,
 0x00148394 <ff_put_h264_chroma_mc4_neon+140>:   vadd.i16        d17, d18,
 0x00148398 <ff_put_h264_chroma_mc4_neon+144>:   vrshrn.i16      d16, q8,
 0x0014839c <ff_put_h264_chroma_mc4_neon+148>:   subs    r3, r3, #2      ;
 0x001483a0 <ff_put_h264_chroma_mc4_neon+152>:   pld     [r1]
 0x001483a4 <ff_put_h264_chroma_mc4_neon+156>:   vext.8  d7, d6, d7, #1
 0x001483a8 <ff_put_h264_chroma_mc4_neon+160>:   vtrn.32 d6, d7
 0x001483ac <ff_put_h264_chroma_mc4_neon+164>:   vst1.32 {d16[0]}, [r0,
 :32], r2
 0x001483b0 <ff_put_h264_chroma_mc4_neon+168>:   vst1.32 {d16[1]}, [r0,
 :32], r2
 ---Type <return> to continue, or q <return> to quit---
 0x001483b4 <ff_put_h264_chroma_mc4_neon+172>:   bgt     0x14836c
 0x001483b8 <ff_put_h264_chroma_mc4_neon+176>:   pop     {r4, r5, r6, r7,
 0x001483bc <ff_put_h264_chroma_mc4_neon+180>:   tst     r6, r6
 0x001483c0 <ff_put_h264_chroma_mc4_neon+184>:   add     r12, r12, r6
 0x001483c4 <ff_put_h264_chroma_mc4_neon+188>:   vdup.8  d0, r4
 0x001483c8 <ff_put_h264_chroma_mc4_neon+192>:   vdup.8  d1, r12
 0x001483cc <ff_put_h264_chroma_mc4_neon+196>:   vtrn.32 d0, d1
 0x001483d0 <ff_put_h264_chroma_mc4_neon+200>:   beq     0x148420
 0x001483d4 <ff_put_h264_chroma_mc4_neon+204>:   vext.8  d1, d0, d1, #4
 0x001483d8 <ff_put_h264_chroma_mc4_neon+208>:   add     r5, r1, r2
 0x001483dc <ff_put_h264_chroma_mc4_neon+212>:   lsl     r4, r2, #1
 0x001483e0 <ff_put_h264_chroma_mc4_neon+216>:   vld1.32 {d4[0]}, [r1], r4
 0x001483e4 <ff_put_h264_chroma_mc4_neon+220>:   vld1.32 {d4[1]}, [r5], r4
 0x001483e8 <ff_put_h264_chroma_mc4_neon+224>:   pld     [r5]
 0x001483ec <ff_put_h264_chroma_mc4_neon+228>:   vmull.u8        q8, d4, d0
 0x001483f0 <ff_put_h264_chroma_mc4_neon+232>:   vld1.32 {d4[0]}, [r1], r4
 0x001483f4 <ff_put_h264_chroma_mc4_neon+236>:   vmull.u8        q9, d4, d1
 0x001483f8 <ff_put_h264_chroma_mc4_neon+240>:   vld1.32 {d4[1]}, [r5], r4
 0x001483fc <ff_put_h264_chroma_mc4_neon+244>:   vadd.i16        d16, d16,
 0x00148400 <ff_put_h264_chroma_mc4_neon+248>:   vadd.i16        d17, d18,
 0x00148404 <ff_put_h264_chroma_mc4_neon+252>:   vrshrn.i16      d16, q8,
 0x00148408 <ff_put_h264_chroma_mc4_neon+256>:   subs    r3, r3, #2      ;
 0x0014840c <ff_put_h264_chroma_mc4_neon+260>:   pld     [r1]
 0x00148410 <ff_put_h264_chroma_mc4_neon+264>:   vst1.32 {d16[0]}, [r0,
 :32], r2
 0x00148414 <ff_put_h264_chroma_mc4_neon+268>:   vst1.32 {d16[1]}, [r0,
 :32], r2
 0x00148418 <ff_put_h264_chroma_mc4_neon+272>:   bgt     0x1483e8
 0x0014841c <ff_put_h264_chroma_mc4_neon+276>:   pop     {r4, r5, r6, r7,
 0x00148420 <ff_put_h264_chroma_mc4_neon+280>:   vld1.8  {d4}, [r1], r2
 0x00148424 <ff_put_h264_chroma_mc4_neon+284>:   vld1.8  {d6}, [r1], r2
 0x00148428 <ff_put_h264_chroma_mc4_neon+288>:   vext.8  d5, d4, d5, #1
 0x0014842c <ff_put_h264_chroma_mc4_neon+292>:   vext.8  d7, d6, d7, #1
 0x00148430 <ff_put_h264_chroma_mc4_neon+296>:   vtrn.32 d4, d5
 0x00148434 <ff_put_h264_chroma_mc4_neon+300>:   vtrn.32 d6, d7
 0x00148438 <ff_put_h264_chroma_mc4_neon+304>:   vmull.u8        q8, d4, d0
 0x0014843c <ff_put_h264_chroma_mc4_neon+308>:   vmull.u8        q9, d6, d0
 0x00148440 <ff_put_h264_chroma_mc4_neon+312>:   subs    r3, r3, #2      ;
 0x00148444 <ff_put_h264_chroma_mc4_neon+316>:   vld1.8  {d4}, [r1], r2
 0x00148448 <ff_put_h264_chroma_mc4_neon+320>:   vext.8  d5, d4, d5, #1
 0x0014844c <ff_put_h264_chroma_mc4_neon+324>:   vtrn.32 d4, d5
 0x00148450 <ff_put_h264_chroma_mc4_neon+328>:   vadd.i16        d16, d16,
 0x00148454 <ff_put_h264_chroma_mc4_neon+332>:   vadd.i16        d17, d18,
 0x00148458 <ff_put_h264_chroma_mc4_neon+336>:   pld     [r1]
 ---Type <return> to continue, or q <return> to quit---
 0x0014845c <ff_put_h264_chroma_mc4_neon+340>:   vrshrn.i16      d16, q8,
 0x00148460 <ff_put_h264_chroma_mc4_neon+344>:   vld1.8  {d6}, [r1], r2
 0x00148464 <ff_put_h264_chroma_mc4_neon+348>:   vext.8  d7, d6, d7, #1
 0x00148468 <ff_put_h264_chroma_mc4_neon+352>:   vtrn.32 d6, d7
 0x0014846c <ff_put_h264_chroma_mc4_neon+356>:   pld     [r1]
 0x00148470 <ff_put_h264_chroma_mc4_neon+360>:   vst1.32 {d16[0]}, [r0,
 :32], r2
 0x00148474 <ff_put_h264_chroma_mc4_neon+364>:   vst1.32 {d16[1]}, [r0,
 :32], r2
 0x00148478 <ff_put_h264_chroma_mc4_neon+368>:   bgt     0x148438
 0x0014847c <ff_put_h264_chroma_mc4_neon+372>:   pop     {r4, r5, r6, r7,
 End of assembler dump.

 (gdb) display/i $pc
 3: x/i $pc  0x148460 <ff_put_h264_chroma_mc4_neon+344>: vld1.8  {d6},
 [r1], r2

Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1135#comment:2>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list