[Libav-user] h264_v4l2m2m encoder segmentation fault (Samsung Exynos5422)
Roland Singer
roland at desertbit.com
Thu Dec 20 19:24:07 EET 2018
Hi,
hope somebody can help solving a segmentation fault caused by using the h264_v4l2m2m encoder on an Samsung Exynos5422.
I tested the encoder using the unmodified examples (git master):
- encode_video.c
- transcoding.c
> # ./encode_video out h264_v4l2m2m
> [h264_v4l2m2m @ 0x49e150] driver 'uvcvideo' on card 'RYS HFR USB2.0 Camera: RYS HFR '
> [h264_v4l2m2m @ 0x49e150] driver 'exynos-gsc' on card 'exynos-gsc gscaler'
> [h264_v4l2m2m @ 0x49e150] driver 'exynos-gsc' on card 'exynos-gsc gscaler'
> [h264_v4l2m2m @ 0x49e150] driver 's5p-mfc' on card 's5p-mfc-enc'
> [h264_v4l2m2m @ 0x49e150] Using device /dev/video11
> [h264_v4l2m2m @ 0x49e150] driver 's5p-mfc' on card 's5p-mfc-enc'
> [h264_v4l2m2m @ 0x49e150] Encoder does not support b-frames yet
> [h264_v4l2m2m @ 0x49e150] h264 profile not found
> [h264_v4l2m2m @ 0x49e150] Encoder adjusted: qmin (0), qmax (51)
> Send frame 0
> Segmentation fault (core dumped)
> # ./transcoding sintel-1280-surround.mp4 out.mp4
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sintel-1280-surround.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2avc1mp41
> creation_time : 1970-01-01T00:00:00.000000Z
> title : Sintel
> encoder : Lavf52.78.5
> copyright : (c) Copyright 2010 Blender Foundation, all rights reserved
> description : Sintel open movie project
> Duration: 00:14:48.06, start: 0.000000, bitrate: 2062 kb/s
> Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x544, 1615 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default)
> Metadata:
> creation_time : 1970-01-01T00:00:00.000000Z
> handler_name : VideoHandler
> Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 440 kb/s (default)
> Metadata:
> creation_time : 1970-01-01T00:00:00.000000Z
> handler_name : SoundHandler
> [h264_v4l2m2m @ 0x5051d0] driver 'uvcvideo' on card 'RYS HFR USB2.0 Camera: RYS HFR '
> [h264_v4l2m2m @ 0x5051d0] driver 'exynos-gsc' on card 'exynos-gsc gscaler'
> [h264_v4l2m2m @ 0x5051d0] driver 'exynos-gsc' on card 'exynos-gsc gscaler'
> [h264_v4l2m2m @ 0x5051d0] driver 's5p-mfc' on card 's5p-mfc-enc'
> [h264_v4l2m2m @ 0x5051d0] Using device /dev/video11
> [h264_v4l2m2m @ 0x5051d0] driver 's5p-mfc' on card 's5p-mfc-enc'
> [h264_v4l2m2m @ 0x5051d0] h264 profile not found
> [h264_v4l2m2m @ 0x5051d0] Encoder adjusted: qmin (0), qmax (51)
> Segmentation fault (core dumped)
However using ffmpeg directly with the following command works as expected:
> # ffmpeg -vcodec h264_v4l2m2m -i sintel-1280-surround.mp4 -vcodec h264_v4l2m2m output.mp4
> ffmpeg version n4.1 Copyright (c) 2000-2018 the FFmpeg developers
> built with gcc 8.2.0 (GCC)
> configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-omx --enable-shared --enable-version3 --host-cflags='"-fPIC"'
> libavutil 56. 22.100 / 56. 22.100
> libavcodec 58. 35.100 / 58. 35.100
> libavformat 58. 20.100 / 58. 20.100
> libavdevice 58. 5.100 / 58. 5.100
> libavfilter 7. 40.101 / 7. 40.101
> libswscale 5. 3.100 / 5. 3.100
> libswresample 3. 3.100 / 3. 3.100
> libpostproc 55. 3.100 / 55. 3.100
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sintel-1280-surround.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2avc1mp41
> creation_time : 1970-01-01T00:00:00.000000Z
> title : Sintel
> encoder : Lavf52.78.5
> copyright : (c) Copyright 2010 Blender Foundation, all rights reserved
> description : Sintel open movie project
> Duration: 00:14:48.06, start: 0.000000, bitrate: 2062 kb/s
> Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x544, 1615 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default)
> Metadata:
> creation_time : 1970-01-01T00:00:00.000000Z
> handler_name : VideoHandler
> Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 440 kb/s (default)
> Metadata:
> creation_time : 1970-01-01T00:00:00.000000Z
> handler_name : SoundHandler
> [h264_v4l2m2m @ 0x4f1b10] driver 'uvcvideo' on card 'RYS HFR USB2.0 Camera: RYS HFR '
> [h264_v4l2m2m @ 0x4f1b10] driver 'exynos-gsc' on card 'exynos-gsc gscaler'
> Last message repeated 1 times
> [h264_v4l2m2m @ 0x4f1b10] driver 's5p-mfc' on card 's5p-mfc-enc'
> [h264_v4l2m2m @ 0x4f1b10] driver 's5p-mfc' on card 's5p-mfc-dec'
> [h264_v4l2m2m @ 0x4f1b10] Using device /dev/video10
> [h264_v4l2m2m @ 0x4f1b10] driver 's5p-mfc' on card 's5p-mfc-dec'
> Stream mapping:
> Stream #0:0 -> #0:0 (h264 (h264_v4l2m2m) -> h264 (h264_v4l2m2m))
> Stream #0:1 -> #0:1 (aac (native) -> aac (native))
> Press [q] to stop, [?] for help
> [h264_v4l2m2m @ 0x524dd0] driver 'uvcvideo' on card 'RYS HFR USB2.0 Camera: RYS HFR '
> [h264_v4l2m2m @ 0x524dd0] driver 'exynos-gsc' on card 'exynos-gsc gscaler'
> Last message repeated 1 times
> [h264_v4l2m2m @ 0x524dd0] driver 's5p-mfc' on card 's5p-mfc-enc'
> [h264_v4l2m2m @ 0x524dd0] Using device /dev/video11
> [h264_v4l2m2m @ 0x524dd0] driver 's5p-mfc' on card 's5p-mfc-enc'
> [h264_v4l2m2m @ 0x524dd0] h264 profile not found
> [h264_v4l2m2m @ 0x524dd0] Encoder adjusted: qmin (0), qmax (51)
> Output #0, mp4, to 'output.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2avc1mp41
> description : Sintel open movie project
> title : Sintel
> copyright : (c) Copyright 2010 Blender Foundation, all rights reserved
> encoder : Lavf58.20.100
> Stream #0:0(und): Video: h264 (h264_v4l2m2m) (avc1 / 0x31637661), nv21, 1280x544, q=2-31, 200 kb/s, 24 fps, 12288 tbn, 24 tbc (default)
> Metadata:
> creation_time : 1970-01-01T00:00:00.000000Z
> handler_name : VideoHandler
> encoder : Lavc58.35.100 h264_v4l2m2m
> Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 341 kb/s (default)
> Metadata:
> creation_time : 1970-01-01T00:00:00.000000Z
> handler_name : SoundHandler
> encoder : Lavc58.35.100 aac
> [mp4 @ 0x4edfd0] Non-monotonous DTS in output stream 0:0; previous: 0, current: 0; changing to 1. This may result in incorrect timestamps in the output file.
> ^Came= 218 fps= 54 q=-0.0 size= 15616kB time=00:00:09.15 bitrate=13978.0kbits/s speed=2.27x
Hope we can fix the examples for the MFC Samsung h264_v4l2m2m encoder.
Have a great day!
Kind Regards
Roland
More information about the Libav-user
mailing list