[FFmpeg-trac] #655(avformat:new): asf parser go into the trobule

FFmpeg trac at avcodec.org
Tue Nov 15 04:34:39 CET 2011


#655: asf parser go into the trobule
----------------------------------+----------------------------------
             Reporter:  qrtt1     |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avformat  |                  Version:  0.8.6
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+----------------------------------
 I try to play mms://72.13.93.186/campcartoon with my android player which
 is implemented by our staff.

 We use ffmpeg to decode a/v frames, and most mms streams are playing well.
 TubTub.com (mms://72.13.93.186/campcartoon) is always going wrong after
 playing for a while.
 I cannot figure out what does matter with it. There are some log messages
 shown by ffmpeg.

 When asf parser emitted error messages, my screen doesn't look good.
 We can reproduce it in ffplay on x86 machine.

 Here are log messages from adb logcat
 {{{
 I/libffmpeg( 2421): [asf @ 0x384b00] ff asf bad header 0  at:10661828
 I/libffmpeg( 2421): [asf @ 0x384b00] ff asf skip 1435 (unknown stream)
 I/libffmpeg( 2421): [asf @ 0x384b00] ff asf bad header b4  at:10663272
 I/libffmpeg( 2421): [asf @ 0x384b00] invalid padsize 15554 at:10663276
 I/libffmpeg( 2421): [asf @ 0x384b00] ff asf bad header 31  at:10663286
 I/libffmpeg( 2421): [asf @ 0x384b00] invalid padsize 56873 at:10663288
 I/libffmpeg( 2421): [asf @ 0x384b00] ff asf bad header e2  at:10663310
 I/libffmpeg( 2421): [asf @ 0x384b00] ff asf bad non zero
 I/libffmpeg( 2421): [asf @ 0x384b00] ff asf bad header f  at:10663354
 I/libffmpeg( 2421): [asf @ 0x384b00] ff asf bad header 4  at:10664880
 I/libffmpeg( 2421): [asf @ 0x384b00] packet_obj_size invalid
 I/libffmpeg( 2421): [asf @ 0x384b00] ignoring invalid packet_obj_size
 (4062 147 3412 8292)
 I/libffmpeg( 2421): [asf @ 0x384b00] ignoring invalid packet_obj_size
 (4209 1410 3412 8292)
 I/libffmpeg( 2421): [asf @ 0x384b00] ignoring invalid packet_obj_size
 (5619 1410 3412 8292)
 I/libffmpeg( 2421): [asf @ 0x384b00] ignoring invalid packet_obj_size
 (7029 445 3412 8292)
 I/libffmpeg( 2421): [asf @ 0x384b00] freeing incomplete packet size 8292,
 new 1272
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 39040 > 39008
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 22 DC, 22 AC, 22 MV errors
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 27354 > 27352
 at 8x5
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 341 DC, 341 AC, 341 MV
 errors
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 32514 > 32512
 at 22x18
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 2 DC, 2 AC, 2 MV errors
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 37293 > 37272
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 92 DC, 92 AC, 92 MV errors
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 40398 > 40392
 at 0x13
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 149 DC, 149 AC, 149 MV
 errors
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 23513 > 23456
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 213 DC, 213 AC, 213 MV
 errors
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 22230 > 22208
 at 4x18
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 20 DC, 20 AC, 20 MV errors
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 22809 > 22800
 at 15x7
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 284 DC, 284 AC, 284 MV
 errors
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 15884 > 15864
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 279 DC, 279 AC, 279 MV
 errors
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] Bits overconsumption: 16257 > 16240
 at 6x5
 I/libffmpeg( 2421): [vc1 @ 0x2860e0] concealing 343 DC, 343 AC, 343 MV
 errors
 }}}

 The bad video picture will become to normal in x86 devices, but
 'ff_mspel_motion' got crashed on Android (arm).
 Here is my workaround to prevent from the negative array index:
 https://github.com/qrtt1/ffmpeg_icy/commit/8f8bfb9ce74691cebdc704a7b65b38a8e0fee69f

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/655>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list