[FFmpeg-devel] [PATCHv3] mpeg4video: Add support for MPEG-4 Simple Studio Profile.

Carl Eugen Hoyos ceffmpeg at gmail.com
Sun Jan 28 18:33:22 EET 2018


2018-01-28 16:36 GMT+01:00 Kieran Kunhya <kieran618 at googlemail.com>:
> Patch updated to fix threading related crashes, thanks to Paul Mahol for
> assistance.
> Also fix segfaults on cut files by disabling unchecked bitstream reading.

Works as expected with ffmpeg, crashes now with ffplay both with and
without --disable-pthreads, backtrace below.
(The initial issue "concealing 8159 DC, 8159 AC, 8159 MV errors in I frame"
is the same as before, error concealment crashes now.)
Please ignore if you believe this can be SDL-related.

Carl Eugen

(gdb) r A003C002_SR_Lite_23.98p.mxf
Starting program: ffplay_g A003C002_SR_Lite_23.98p.mxf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
ffplay version N-89861-g78e884f Copyright (c) 2003-2018 the FFmpeg developers
  built with gcc 6.3.0 (GCC)
  configuration: --disable-asm --disable-pthreads
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  5.100 / 58.  5.100
  libavdevice    58.  0.101 / 58.  0.101
  libavfilter     7. 11.101 /  7. 11.101
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
[New Thread 0x7ffff515c700 (LWP 13019)]
Detaching after fork from child process 13020.
[New Thread 0x7ffff0bf1700 (LWP 13021)]
[Thread 0x7ffff0bf1700 (LWP 13021) exited]
[New Thread 0x7ffff0bf1700 (LWP 13022)]
[New Thread 0x7fffeba2f700 (LWP 13023)]
[mpeg4 @ 0x7fffe40085a0] Warning: not compiled with thread support,
using thread emulation
[pcm_s24le @ 0x7fffe4011440] Warning: not compiled with thread
support, using thread emulation
[pcm_s24le @ 0x7fffe40121f0] Warning: not compiled with thread
support, using thread emulation
[pcm_s24le @ 0x7fffe4012fd0] Warning: not compiled with thread
support, using thread emulation
[pcm_s24le @ 0x7fffe4013d60] Warning: not compiled with thread
support, using thread emulation
[pcm_s24le @ 0x7fffe4014b50] Warning: not compiled with thread
support, using thread emulation
[pcm_s24le @ 0x7fffe40158e0] Warning: not compiled with thread
support, using thread emulation
[pcm_s24le @ 0x7fffe40166e0] Warning: not compiled with thread
support, using thread emulation
[pcm_s24le @ 0x7fffe4017450] Warning: not compiled with thread
support, using thread emulation
Input #0, mxf, from 'A003C002_SR_Lite_23.98p.mxf':
  Metadata:
    product_uid     : cede1104-8280-11de-8a39-08004678031c
    uid             : 85d675bf-65d1-4ba2-826f-58ce7ec69f96
    generation_uid  : 67cf5495-0583-43e4-9af1-ccc6a968f407
    company_name    : Sony
    product_name    : Mem
    product_version : 1.0
    application_platform: Sony MXF Development Kit (MacOS X)
    modification_date: 2013-10-26T19:05:30.000000Z
    material_package_umid:
0x060A2B340101010501010D43130000002314A5CB916505CE08004602026A87CD
    timecode        : 00:04:47:12
  Duration: 00:00:11.68, start: 0.000000, bitrate: 191718 kb/s
    Stream #0:0: Video: mpeg4 (Simple Studio Profile),
yuv422p10le(progressive), 1920x1088 [SAR 1:1 DAR 30:17], SAR 136:135
DAR 16:9, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
    Stream #0:1: Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
    Stream #0:2: Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
    Stream #0:3: Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
    Stream #0:4: Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
    Stream #0:5: Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
    Stream #0:6: Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
    Stream #0:7: Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
    Stream #0:8: Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
    Stream #0:9: Data: none
    Metadata:
      file_package_umid:
0x060A2B340101010501010D43130000002414A5CB916505CE08004602026A87CD
      file_package_name:        /
      data_type       : vbi_vanc_smpte_436M
[pcm_s24le @ 0x7fffe402c540] Warning: not compiled with thread
support, using thread emulation
[New Thread 0x7fffeb064700 (LWP 13024)]
[New Thread 0x7fffea863700 (LWP 13025)]
[mpeg4 @ 0x7fffe4092840] Warning: not compiled with thread support,
using thread emulation
[New Thread 0x7fffea062700 (LWP 13026)]
[mpeg4 @ 0x7fffe4092840] concealing 8159 DC, 8159 AC, 8159 MV errors in I frame
[mpeg4 @ 0x7fffe4092840] concealing 8159 DC, 8159 AC, 8159 MV errors in I frame

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffea062700 (LWP 13026)]
0x0000000000000000 in ?? ()
(gdb) bt full
#0  0x0000000000000000 in ?? ()
No symbol table info available.
#1  0x00000000009796c5 in add_dct (line_size=3840, dest=0x7fffe8a6b020
'e' <repeats 16 times>, i=0, block=0x7fffd40d91c0, s=0x7fffe4092f40)
at libavcodec/mpegvideo.c:1883
        i = 0
        dest = 0x7fffe8a6b020 'e' <repeats 16 times>
        block = 0x7fffd40d91c0
        s = 0x7fffe4092f40
        line_size = 3840
#2  mpv_reconstruct_mb_internal (is_mpeg12=<optimized out>,
lowres_flag=<optimized out>, block=<optimized out>, s=<optimized out>)
at libavcodec/mpegvideo.c:2098
        dct_linesize = <optimized out>
        dct_offset = <optimized out>
        dest_cb = <optimized out>
        linesize = <optimized out>
        uvlinesize = <optimized out>
        readable = <optimized out>
        block_size = <optimized out>
        dest_y = <optimized out>
        dest_cr = <optimized out>
        op_pix = <optimized out>
        op_qpix = <optimized out>
        mb_xy = <optimized out>
#3  ff_mpv_reconstruct_mb (s=0x7fffe4092f40, block=<optimized out>) at
libavcodec/mpegvideo.c:2220
No locals.
#4  0x0000000000d000f8 in guess_mv (s=0x7fffe40952a8) at
libavcodec/error_resilience.c:453
        mb_xy = <optimized out>
        mv_dir = <optimized out>
        mb_width = 120
        mb_height = <optimized out>
        i = <optimized out>
        num_avail = <optimized out>
        mot_step = <optimized out>
        next_blocklist_length = <optimized out>
        blocklist = <optimized out>
        mb_stride = <optimized out>
        mb_x = 1
        mot_stride = <optimized out>
        blocklist_length = <optimized out>
        next_blocklist = <optimized out>
        fixed = <optimized out>
        mb_y = 0
#5  ff_er_frame_end (s=s at entry=0x7fffe40952a8) at
libavcodec/error_resilience.c:1231
        linesize = <optimized out>
        i = <optimized out>
        mb_x = <optimized out>
        mb_y = <optimized out>
        error = <optimized out>
        error_type = <optimized out>
        dc_error = <optimized out>
        mv_error = <optimized out>
        ac_error = <optimized out>
        distance = <optimized out>
        threshold_part = {100, 100, 100, 0}
        size = <optimized out>
#6  0x000000000081e9f3 in ff_h263_decode_frame (avctx=<optimized out>,
data=0x7fffe4092c60, got_frame=0x7fffea061ca8, avpkt=<optimized out>)
at libavcodec/h263dec.c:670
        buf = 0x7fffe4123380 ""
        buf_size = 937500
        s = 0x7fffe4092f40
        ret = <optimized out>
        slice_ret = 0
        pict = 0x7fffe4092c60
#7  0x0000000000776264 in decode_simple_internal
(frame=0x7fffe4092c60, avctx=0x7fffe4092840) at
libavcodec/decode.c:398
        pkt = 0x7fffe4092e80
        ret = <optimized out>
        avci = <optimized out>
        ds = <optimized out>
        got_frame = 0
        actual_got_frame = <optimized out>
#8  decode_simple_receive_frame (frame=<optimized out>,
avctx=<optimized out>) at libavcodec/decode.c:594
No locals.
#9  decode_receive_frame_internal (avctx=avctx at entry=0x7fffe4092840,
frame=0x7fffe4092c60) at libavcodec/decode.c:612
        avci = 0x7fffe402eae0
        ret = <optimized out>
#10 0x0000000000776e68 in avcodec_send_packet (avctx=0x7fffe4092840,
avpkt=avpkt at entry=0x7fffea061d30) at libavcodec/decode.c:674
        avci = 0x7fffe402eae0
        ret = <optimized out>
#11 0x000000000047eab6 in decoder_decode_frame (d=0x7fffeba315b0,
frame=frame at entry=0x7fffd40008c0, sub=sub at entry=0x0) at
fftools/ffplay.c:663
        pkt = {buf = 0x7fffe4208220, pts = 1, dts = 1, data =
0x7fffe4123380 "", size = 937500, stream_index = 0, flags = 1,
side_data = 0x0, side_data_elems = 0, duration = 1, pos = 1015296,
convergence_duration = 0}
        ret = -11
#12 0x0000000000480e7a in get_video_frame (frame=<optimized out>,
is=0x7fffeba30010) at fftools/ffplay.c:1748
        got_picture = <optimized out>
#13 video_thread (arg=0x7fffeba30010) at fftools/ffplay.c:2133
        is = 0x7fffeba30010
        frame = 0x7fffd40008c0
        pts = <optimized out>
        duration = <optimized out>
        ret = <optimized out>
        frame_rate = {num = 24000, den = 1001}
        graph = 0x7fffd4000ae0
        filt_out = 0x7fffd4441440
        filt_in = 0x7fffd4440de0
        last_w = 1920
        last_h = 1080
        last_format = AV_PIX_FMT_YUV422P10LE
        last_serial = 1
        last_vfilter_idx = 0


More information about the ffmpeg-devel mailing list