[Libav-user] SIGBUS when using ffmpeg on QNX armv7

Pavel Vazharov pvazharov at abaltatech.com
Tue Jul 30 20:21:23 CEST 2013


Hi,

I ported an application, with ffmpeg, which is working on QNX x86 to QNX
armv7.

I cross compiled the ffmpeg on a linux machine with the QNX momentics suite
tools.
I can't compile the library directly on the QNX armv7 device so I had to
cross compile it.

My configure was following:

./configure \
    --enable-gpl \
    --enable-nonfree \
    --disable-bzlib \
    --disable-ffserver \
    --enable-cross-compile \
    --target-os=qnx \
    --arch=armv7 \
    --cross-prefix=ntoarmv7- \
    --enable-libx264 \
    --extra-cflags="-I../x264 -Wno-deprecated -Wno-deprecated-declarations"
\
    --extra-ldflags="-L../x264"

It gave one warning - "Compiler does not indicate floating-point ABI".

I did "make all".

When I started the application it gave - (Suspended: Signal 'SIGBUS'
received. Description: Bus error.)

17 adts_aac_probe() libavutil\arm\intreadwrite.h:34 0x0028a284
16 av_probe_input_format3() libavformat\utils.c:339 0x00273da4
15 av_probe_input_buffer() libavformat\utils.c:361 0x002749cc
14 avformat_open_input() libavformat\utils.c:522 0x00276698
13 WLCommon::CFrameDecoder_H264_ffmpeg_impl::Startup()
C:\DataDisk\Project\AbaltaInternal\WebLink\Source\WebLinkCore\FrameEncoding\FrameDecoder_H264_ffmpeg.cpp:281
0x0012406c
....

This is the function that causes the SIGBUS.
bool CFrameDecoder_H264_ffmpeg_impl::Startup()
{
  bool result   = false;

  if (m_initialized && !m_started)
  {
    int res;
    av_register_all();
    m_videoStrmIdx = -1;
    m_formatCtx    = avformat_alloc_context();
    m_ioBuffer     = (unsigned char*)av_malloc(8192);
    m_avioCtx      = avio_alloc_context(m_ioBuffer, 8192, 0, this,
ReadFunction, NULL, NULL);
    m_formatCtx->pb = m_avioCtx;
 ---->   res = avformat_open_input(&m_formatCtx, "dummyFilename", NULL,
NULL);
...

As far as I know the SIGBUS means misaligned access. The reason could be in
our code, but the same code works on Raspberry Pi device with Linux and
armv7.

Can you advise me how to approach to this problem? Should I try some
--extra-cflags in the configure phase? Should I search the reason in our
code?

I can provide you with the information from config.log, config.mak or
config.h, if needed.

Thanks,
Pavel.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20130730/38bc095f/attachment.html>


More information about the Libav-user mailing list