elif enabled armv7
then
check_add_cflags -march=armv7-a -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-ftree-vectorize
- check_add_asflags -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-march=armv7-a
+ check_add_asflags -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-march=armv7-a
else
check_add_cflags -march=${tgt_isa}
check_add_asflags -march=${tgt_isa}
arch_int=${arch_int%%te}
check_add_asflags --pd "\"ARCHITECTURE SETA ${arch_int}\""
enabled debug && add_asflags -g
+ add_cflags --gnu
+ add_cflags --enum_is_int
+ add_cflags --wchar32
;;
esac
case ${tgt_os} in
+ none*)
+ disable multithread
+ disable os_support
+ ;;
darwin*)
SDK_PATH=/Developer/Platforms/iPhoneOS.platform/Developer
TOOLCHAIN_PATH=${SDK_PATH}/usr/bin
|| die "Must supply --libc when targetting *-linux-rvct"
# Set up compiler
- add_cflags --gnu
- add_cflags --enum_is_int
add_cflags --library_interface=aeabi_glibc
add_cflags --no_hide_all
- add_cflags --wchar32
add_cflags --dwarf2
- add_cflags --gnu
# Set up linker
add_ldflags --sysv --no_startup --no_ref_cpp_init
# alphabetically by architecture, generic-gnu last.
all_platforms="${all_platforms} armv5te-linux-rvct"
all_platforms="${all_platforms} armv5te-linux-gcc"
+all_platforms="${all_platforms} armv5te-none-rvct"
all_platforms="${all_platforms} armv5te-symbian-gcc"
all_platforms="${all_platforms} armv5te-wince-vs8"
all_platforms="${all_platforms} armv6-darwin-gcc"
all_platforms="${all_platforms} armv6-linux-rvct"
all_platforms="${all_platforms} armv6-linux-gcc"
+all_platforms="${all_platforms} armv6-none-rvct"
all_platforms="${all_platforms} armv6-symbian-gcc"
all_platforms="${all_platforms} armv6-wince-vs8"
all_platforms="${all_platforms} iwmmxt-linux-rvct"
all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8
all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8
all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8
+all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8
all_platforms="${all_platforms} mips32-linux-gcc"
all_platforms="${all_platforms} ppc32-darwin8-gcc"
all_platforms="${all_platforms} ppc32-darwin9-gcc"
enable md5
enable spatial_resampling
enable multithread
+enable os_support
[ -d ${source_path}/../include ] && enable alt_tree_layout
for d in vp8; do
small
arm_asm_detok
postproc_visualizer
+ os_support
"
CMDLINE_SELECT="
extra_warnings
# Handle extra library flags depending on codec configuration
-CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
+# We should not link to math library (libm) on RVCT
+# when building for bare-metal targets
+ifeq ($(CONFIG_OS_SUPPORT), yes)
+CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
+else
+ ifeq ($(CONFIG_GCC), yes)
+ CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
+ endif
+endif
#
# End of specified files. The rest of the build rules should happen
# automagically from here.
* Still in the public domain.
*/
-#include <sys/types.h> /* for stupid systems */
-
#include <string.h> /* for memcpy() */
#include "md5_utils.h"
ENDP
;-----------------
- AREA subpelfilters8_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
;One word each is reserved. Label filter_coeff can be used to access the data.
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
_filter8_coeff_
ENDP
;-----------------
- AREA bifilters16_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_bifilter16_coeff_
DCD bifilter16_coeff
bifilter16_coeff
ENDP
;-----------------
- AREA bilinearfilters4_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_bifilter4_coeff_
DCD bifilter4_coeff
bifilter4_coeff
ENDP
;-----------------
- AREA bifilters8x4_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_bifilter8x4_coeff_
DCD bifilter8x4_coeff
bifilter8x4_coeff
ENDP
;-----------------
- AREA bifilters8_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_bifilter8_coeff_
DCD bifilter8_coeff
bifilter8_coeff
bx lr
ENDP ; |vp8_loop_filter_horizontal_edge_y_neon|
- AREA loopfilter_dat, DATA, READONLY
+;-----------------
+
_lf_coeff_
DCD lf_coeff
lf_coeff
ENDP ; |vp8_loop_filter_simple_horizontal_edge_neon|
;-----------------
- AREA hloopfiltery_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 16 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_lfhy_coeff_
DCD lfhy_coeff
lfhy_coeff
ENDP ; |vp8_loop_filter_simple_vertical_edge_neon|
;-----------------
- AREA vloopfiltery_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 16 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_vlfy_coeff_
DCD vlfy_coeff
vlfy_coeff
bx lr
ENDP ; |vp8_mbloop_filter_neon|
- AREA mbloopfilter_dat, DATA, READONLY
+;-----------------
+
_mblf_coeff_
DCD mblf_coeff
mblf_coeff
ENDP
;-----------------
- AREA idct4x4_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_idct_coeff_
DCD idct_coeff
idct_coeff
ENDP
;-----------------
- AREA subpelfilters16_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_filter16_coeff_
DCD filter16_coeff
filter16_coeff
ENDP
;-----------------
- AREA subpelfilters4_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_filter4_coeff_
DCD filter4_coeff
filter4_coeff
ENDP
;-----------------
- AREA subpelfilters8_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_filter8_coeff_
DCD filter8_coeff
filter8_coeff
ENDP
;-----------------
- AREA subpelfilters8_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_filter8_coeff_
DCD filter8_coeff
filter8_coeff
#define VPXINFINITE 10000 /* 10second. */
+#if CONFIG_OS_SUPPORT
+
/* Thread management macros */
#ifdef _WIN32
/* Win32 */
#define x86_pause_hint()
#endif
+#else /* CONFIG_OS_SUPPORT = 0 */
+#define THREAD_FUNCTION void *
+#endif /* CONFIG_OS_SUPPORT */
+
#endif
*/
-#ifndef WIN32
+#if !defined(WIN32) && CONFIG_OS_SUPPORT == 1
# include <unistd.h>
#endif
#ifdef __APPLE__
ENDP
;-----------------
- AREA fastfdct_dat, DATA, READONLY
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_ffdct_coeff_
DCD ffdct_coeff
ffdct_coeff
ENDP
;-----------------
- AREA fastfdct8x4_dat, DATA, READONLY
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_ffdct8_coeff_
DCD ffdct8_coeff
ffdct8_coeff
ENDP
;-----------------
- AREA dct4x4_dat, DATA, READONLY
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_dct_matrix_
DCD dct_matrix
dct_matrix
ENDP
;-----------------
- AREA vp8e_bilinear_taps_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_BilinearTaps_coeff_
DCD bilinear_taps_coeff
bilinear_taps_coeff
ENDP
;-----------------
- AREA bilinear_taps_dat, DATA, READWRITE ;read/write by default
-;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
-;One word each is reserved. Label filter_coeff can be used to access the data.
-;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
+
_BilinearTaps_coeff_
DCD bilinear_taps_coeff
bilinear_taps_coeff
#ifndef VPX_TIMER_H
#define VPX_TIMER_H
+#if CONFIG_OS_SUPPORT
+
#if defined(_WIN32)
/*
* Win32 specific includes
#endif
}
+#else /* CONFIG_OS_SUPPORT = 0*/
+
+/* Empty timer functions if CONFIG_OS_SUPPORT = 0 */
+#ifndef timersub
+#define timersub(a, b, result)
+#endif
+
+struct vpx_usec_timer
+{
+ void *dummy;
+};
+
+static void
+vpx_usec_timer_start(struct vpx_usec_timer *t) { }
+
+static void
+vpx_usec_timer_mark(struct vpx_usec_timer *t) { }
+
+static long
+vpx_usec_timer_elapsed(struct vpx_usec_timer *t) { return 0; }
+
+#endif /* CONFIG_OS_SUPPORT */
#endif
#include <stdarg.h>
#include <string.h>
#include <limits.h>
-#if defined(_WIN32)
-#include <io.h>
-#define snprintf _snprintf
-#define isatty _isatty
-#define fileno _fileno
-#else
-#include <unistd.h>
-#endif
+
#define VPX_CODEC_DISABLE_COMPAT 1
#include "vpx_config.h"
#include "vpx/vpx_decoder.h"
#include "tools_common.h"
#include "nestegg/include/nestegg/nestegg.h"
+#if CONFIG_OS_SUPPORT
+#if defined(_WIN32)
+#include <io.h>
+#define snprintf _snprintf
+#define isatty _isatty
+#define fileno _fileno
+#else
+#include <unistd.h>
+#endif
+#endif
+
#ifndef PATH_MAX
#define PATH_MAX 256
#endif
strcmp(fn, "-") ? fn : "stdin");
return EXIT_FAILURE;
}
-
+#if CONFIG_OS_SUPPORT
/* Make sure we don't dump to the terminal, unless forced to with -o - */
if(!outfile_pattern && isatty(fileno(stdout)) && !do_md5 && !noblit)
{
"override.\n");
return EXIT_FAILURE;
}
-
+#endif
input.infile = infile;
if(file_is_ivf(infile, &fourcc, &width, &height, &fps_den,
&fps_num))
/* This is a simple program that encodes YV12 files and generates ivf
* files using the new interface.
*/
-#if defined(_WIN32)
+#if defined(_WIN32) || !CONFIG_OS_SUPPORT
#define USE_POSIX_MMAP 0
#else
#define USE_POSIX_MMAP 1
#define LITERALU64(n) n##LLU
#endif
+/* We should use 32-bit file operations in WebM file format
+ * when building ARM executable file (.axf) with RVCT */
+#if !CONFIG_OS_SUPPORT
+typedef long off_t;
+#define fseeko fseek
+#define ftello ftell
+#endif
+
static const char *exec_name;
static const struct codec_item