Motion - Support Question 2012x 02x 02x 141742

Motion compile fails on Beaglebone (arm7) with "Error: bad instruction `emms'"

Question

Trying to compile Motion for BeagleBone (Angstrom Linux distro, arm7 arch). Make fails with:

/tmp/cctcaFkD.s: Assembler messages: /tmp/cctcaFkD.s:1965: Error: bad instruction `emms' make: * [ffmpeg.o] Error 1

from an assembler phase of gcc. Googling suggests that the problem is that arm7 architecture lacks the emms instruction. Obvious fix of undef'ing EMMS in mmx.h fails, of course.

Pre-built version of Motion from Angstrom package manager site runs Ok, ironically, but segfaults on various config options, and suggestion I have seen is to build Motion from source, which is what I'm trying here.

I will appreciate any help or suggestions you can provide.

Update: Ok, got it to compile. Realized it is really an ffmpeg problem, not Motion per se. Found posting here:

http://archlinuxarm.org/forum/viewtopic.php?t=1531&p=8877

re Arch Linux build where deleting the reference to emms in the in-line assembler in ffmpeg.c fixed a very similar problem.

Now on to see if it runs...

Update2: Nope, doesn't run. Now getting messages below (please see last verbatim text at the bottom).
output from ./configure

************************************************

checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for Darwin... no
checking for *BSD... no
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking threads... yes
checking for sdl... no
checking for libjpeg-turbo... skipping
checking for libjpeg-mmx... skipping
checking for jpeg_set_defaults in -ljpeg... yes
checking for ffmpeg autodetecting libraries... found in /usr/lib
checking for ffmpeg headers in /usr... found /usr/include/libavformat/avformat.h
checking file_protocol is defined in ffmpeg ?... no
checking for sqlite3_open in -lsqlite3... yes
checking for mysql support... testing
checking autodect mysql headers... not found
Invalid MySQL directory - unable to find mysql.h.
checking for PostgreSQL... testing
checking autodect pgsql headers... not found
Invalid PostgreSQL directory - unable to find libpq-fe.h.
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking for unistd.h... (cached) yes
checking for stdint.h... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking linux/videodev.h usability... no
checking linux/videodev.h presence... no
checking for linux/videodev.h... no
checking linux/videodev2.h usability... yes
checking linux/videodev2.h presence... yes
checking for linux/videodev2.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking for sys/types.h... (cached) yes
checking for get_current_dir_name... yes
checking for struct v4l2_buffer... no
checking for V42L support... no
checking for V42L *old* support... testing
checking for linux/videodev2.h... (cached) yes
checking size of short... 2
checking size of int... 4
checking size of long int... 4
checking size of long long... 8
checking size of int *... 4
checking size of void *... 4
checking for an ANSI C-conforming const... yes
Detected CPU: 
cc1: error: bad value (native) for -march switch
cc1: error: bad value (native) for -mtune switch
No CPU optimizations will be added
checking for bswap instruction... yes
checking for avformat_alloc_context... yes
checking for av_avformat_alloc_context... no
checking for av_register_protocol2... yes
checking for av_register_protocol... no
configure: creating ./config.status
config.status: creating thread1.conf
config.status: creating thread2.conf
config.status: creating thread3.conf
config.status: creating thread4.conf
config.status: creating motion-dist.conf
config.status: creating motion.init-FreeBSD.sh
config.status: creating motion.init-Debian
config.status: creating motion.init-Fedora
config.status: creating motion.spec
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged

   **************************
      Configure status       
      motion trunkREV552
   **************************

OS             :     Linux
pthread support:     Yes
jpeg support:        Yes
V4L support:         Yes
V4L2 support:        Yes
SDL support:         No
FFmpeg support:      Yes
SQLite3 support:     Yes
MYSQL support:       No
PostgreSQL support:  No

CFLAGS:  -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP   
LIBS: -lm  -lpthread -ljpeg -L/usr/lib -lavformat -lavcodec -lavutil -lm -lz -lsqlite3
LDFLAGS:   -L/usr/lib

Install prefix:       /usr/local

*****************************************************

output from make

******************************************************

Welcome to the setup procedure for Motion, the motion detection daemon! If you get
error messages during this procedure, please report them to the mailing list. The
Motion Guide contains all information you should need to get Motion up and running.
Run "make updateguide" to download the latest version of the Motion Guide.

Version: trunkREV552
Platform: Linux (if this is incorrect, please read README.FreeBSD)

Generating dependencies, please wait...

Compiling Motion object files...
--------------------------------------------------------------------------------
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o motion.o motion.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o logger.o logger.c
logger.c: In function 'motion_log':
logger.c:226:2: warning: #warning "************************************"
logger.c:227:2: warning: #warning "* Using XSI-COMPLIANT strerror_r() *"
logger.c:228:2: warning: #warning "************************************"
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o conf.o conf.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o draw.o draw.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o jpegutils.o jpegutils.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o vloopback_motion.o vloopback_motion.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o video.o video.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o video2.o video2.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o video_common.o video_common.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o netcam.o netcam.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o netcam_ftp.o netcam_ftp.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o netcam_jpeg.o netcam_jpeg.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o netcam_wget.o netcam_wget.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o track.o track.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o alg.o alg.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o event.o event.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o picture.o picture.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o rotate.o rotate.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o webhttpd.o webhttpd.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o stream.o stream.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o md5.o md5.c
gcc -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include -DFFMPEG_NEW_INCLUDES -DHAVE_FFMPEG_NEW -DMOTION_V4L2 -DMOTION_V4L2_OLD -DTYPE_32BIT="int" -DHAVE_BSWAP    -Wall -DVERSION=\"trunkREV552\" -Dsysconfdir=\"/usr/local/etc\"    -c -o ffmpeg.o ffmpeg.c
ffmpeg.c:27:10: warning: #warning **************************************************
ffmpeg.c:28:10: warning: #warning Your version of FFmpeg is newer than version 0.4.8
ffmpeg.c:29:10: warning: #warning Newer versions of ffmpeg do not support MPEG1 with
ffmpeg.c:30:10: warning: #warning non-standard framerate. MPEG1 will be disabled for
ffmpeg.c:31:10: warning: #warning normal video output. You can still use mpeg4 and
ffmpeg.c:32:10: warning: #warning and mpeg4ms which are both better in terms of size
ffmpeg.c:33:10: warning: #warning and quality. MPEG1 is always used for timelapse.
ffmpeg.c:34:10: warning: #warning Please read the Motion Guide for more information.
ffmpeg.c:35:10: warning: #warning Note that this is not an error message!
ffmpeg.c:36:10: warning: #warning **************************************************
ffmpeg.c:217:5: warning: initialization from incompatible pointer type
ffmpeg.c: In function 'mpeg1_write_trailer':
ffmpeg.c:241:5: warning: 'put_buffer' is deprecated (declared at /usr/include/libavformat/avio.h:401)
ffmpeg.c: In function 'ffmpeg_open':
ffmpeg.c:620:9: warning: 'url_fopen' is deprecated (declared at /usr/include/libavformat/avio.h:421)
ffmpeg.c:630:17: warning: 'url_fopen' is deprecated (declared at /usr/include/libavformat/avio.h:421)
ffmpeg.c: In function 'ffmpeg_close':
ffmpeg.c:731:9: warning: 'url_fclose' is deprecated (declared at /usr/include/libavformat/avio.h:422)
/tmp/cctcaFkD.s: Assembler messages:
/tmp/cctcaFkD.s:1965: Error: bad instruction `emms'
make: *** [ffmpeg.o] Error 1

***************************************

Output from run of re-built motion:

*********************************************
[0] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion.conf
 [0] [NTC] [ALL] motion_startup: Motion 8.3.0 Started
 [0] [NTC] [ALL] motion_startup: Logging to syslog
 [0] [NTC] [ALL] motion_startup: Using log type (ALL) log level (DBG)
 [0] [NTC] [ENC] ffmpeg_init: ffmpeg LIBAVCODEC_BUILD 3436802 LIBAVFORMAT_BUILD 3433984
 [0] [NTC] [ALL] main: Thread 1 is from /etc/motion.conf
 [0] [NTC] [ALL] main: Thread 1 is device: /dev/video0 input -1
 [0] [NTC] [ALL] main: Stream port 8081
 [0] [NTC] [ALL] main: Waiting for threads to finish, pid: 14254
 [1] [NTC] [ALL] motion_init: Thread 1 started , motion detection Enabled
 [0] [NTC] [STR] httpd_run: motion-httpd testing : IPV4 addr: 0.0.0.0 port: 8080
 [1] [NTC] [VID] vid_v4lx_start: Using videodevice /dev/video0 and input -1
 [0] [NTC] [STR] httpd_run: motion-httpd Bound : IPV4 addr: 0.0.0.0 port: 8080
 [0] [NTC] [STR] httpd_run: motion-httpd/8.3.0 running, accepting connections
 [1] [NTC] [VID] v4l2_get_capability: 
 ------------------------
 cap.driver: "uvcvideo"
 cap.card: "Sirius USB2.0 Camera"
 cap.bus_info: "usb-musb-hdrc.1-1"
 cap.capabilities=0x04000001
 ------------------------
 [0] [NTC] [STR] httpd_run: motion-httpd: waiting for data on 0.0.0.0 port TCP 8080
 [1] [NTC] [VID] v4l2_get_capability: - VIDEO_CAPTURE
 [1] [NTC] [VID] v4l2_get_capability: - STREAMING
 [1] [NTC] [VID] v4l2_select_input: name = "Camera 1", type 0x00000002, status 00000000
 [1] [NTC] [VID] v4l2_select_input: - CAMERA
 [1] [WRN] [VID] v4l2_select_input: Device doesn't support VIDIOC_G_STD
 [1] [NTC] [VID] v4l2_set_pix_format: Config palette index 17 (YU12) doesn't work.
 [1] [NTC] [VID] v4l2_set_pix_format: Supported palettes:
 [1] [NTC] [VID] v4l2_set_pix_format: (0) YUYV (YUV 4:2:2 (YUYV))
 [1] [NTC] [VID] v4l2_set_pix_format: 0 - YUV 4:2:2 (YUYV) (compressed : 0) (0x56595559)
 [1] [NTC] [VID] v4l2_set_pix_format Selected palette YUYV
 [1] [NTC] [VID] v4l2_do_set_pix_format: Testing palette YUYV (320x240)
 [1] [NTC] [VID] v4l2_do_set_pix_format: Using palette YUYV (320x240) bytesperlines 640 sizeimage 153600 colorspace 00000008
 [1] [NTC] [VID] v4l2_scan_controls: found control 0x00980900, "Brightness", range -10,10 
 [1] [NTC] [VID] v4l2_scan_controls:     "Brightness", default -5, current -10
[1] [NTC] [VID] v4l2_scan_controls:     "Brightness", default -5, current -10
[1] [NTC] [VID] v4l2_scan_controls: found control 0x00980901, "Contrast", range 0,20 
[1] [NTC] [VID] v4l2_scan_controls:     "Contrast", default 11, current 11
[1] [NTC] [VID] v4l2_scan_controls: found control 0x00980902, "Saturation", range 0,10 
[1] [NTC] [VID] v4l2_scan_controls:     "Saturation", default 5, current 5
[1] [NTC] [VID] v4l2_scan_controls: found control 0x00980910, "Gamma", range 100,200 
[1] [NTC] [VID] v4l2_scan_controls:     "Gamma", default 150, current 150
[1] [NTC] [VID] v4l2_scan_controls: found control 0x00980913, "Gain", range 32,48 
[1] [NTC] [VID] v4l2_scan_controls:     "Gain", default 34, current 34
[1] [DBG] [VID] v4l2_set_mmap: mmap information: frames=4
[1] [DBG] [VID] v4l2_set_mmap: 0 length=153600 Address (421c3000)
[1] [DBG] [VID] v4l2_set_mmap: 1 length=153600 Address (4224b000)
[1] [DBG] [VID] v4l2_set_mmap: 2 length=153600 Address (42300000)
[1] [DBG] [VID] v4l2_set_mmap: 3 length=153600 Address (423b1000)
[1] [NTC] [VID] vid_v4lx_start: Using V4L2
[1] [NTC] [ALL] image_ring_resize: Resizing pre_capture buffer to 1 items
[1] [DBG] [VID] v4l2_next: 1) vid_source->pframe -1
[0] [ERR] [ALL] main: Thread 1 - Watchdog timeout, trying to do a graceful restart
[0] [NTC] [STR] httpd_run: motion-httpd - Finishing
[0] [NTC] [STR] httpd_run: motion-httpd Closing
[0] [NTC] [STR] motion_web_control: motion-httpd thread exit
^C^C

[0] [ERR] [ALL] main: Thread 1 - Watchdog timeout, did NOT restart graceful,killing it!
[0] [NTC] [STR] stream_stop: Closing motion-stream listen socket & active motion-stream sockets
[0] [NTC] [STR] stream_stop: Closed motion-stream listen socket & active motion-stream sockets
[0] [INF] [ALL] motion_cleanup: Calling vid_close() from motion_cleanup
[0] [NTC] [VID] vid_close: Closing video device /dev/video0
[0] [NTC] [ALL] main: Threads finished
[0] [NTC] [ALL] main: Motion terminating


Environment

Motion version: trunkREV552
ffmpeg version: ffmpeg-dev_0.6.1+r17.2+gitr0+0b32da90f893b3e04ead18a546252e241a6a0988-r17.2.9_armv7a.ipk
Libraries: ffmpeg, mysql, postgresql
Server OS: Linux Angstrom, kernel 3.1.0+
-- JerryReed - 02 Feb 2012

Answer

To compile for ARM (tested on GK802 running Ubuntu 12.04)

1. set valid date/time on your device (most ARM devices have no battery and requires to set date/time after every boot)
2. git clone https://github.com/sackmotion/motion.git
3. apt-get install libavcodec-dev libavformat-dev
4. ./configure --with-ffmpeg=/usr/lib/arm-linux-gnueabi --with-ffmpeg-headers=/usr/include/libavformat
5. vim.tiny Makefile, add CFLAG: -DFFMPEG_NEW_INCLUDES
6. vim.tiny ffmpeg.c and commet following lines:

diff --git a/ffmpeg.c b/ffmpeg.c
index 1c2ae47..d951a09 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1000,9 +1000,13 @@ void ffmpeg_deinterlace(unsigned char *img, int width, int height)
     /* We assume using 'PIX_FMT_YUV420P' always */
     avpicture_deinterlace(&picture, &picture, PIX_FMT_YUV420P, width, height);

-#ifndef __SSE_MATH__
+/*
+* Removed to compile under ARM
+*
+ifndef __SSE_MATH__
     __asm__ __volatile__ ( "emms");
-#endif
+endif
+*/

     return;
 } 

7. make

Tested using latest available master branch at Github/sackmotion (should be equivalent of SVN trunk), commit 0fb31d66c9bb5032403f831c7f3b6ae241938bcb (PACKAGE_VERSION "Git-8619d7c17ce112e7196975905c6e840f345141ba")

SupportForm edit

TopicTitle Motion compile fails on Beaglebone (arm7) with "Error: bad instruction `emms'"
SupportStatus AnsweredQuestions
AssignedQuestionTo TosiaraT
SubmittedBy Main.Jerry
Topic revision: r3 - 27 Dec 2013, TosiaraT
Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Please do not email Kenneth for support questions (read why). Use the Support Requests page or join the Mailing List.
This website only use harmless session cookies. See Cookie Policy for details. By using this website you accept the use of these cookies.