diff --git a/build/make/configure.sh b/build/make/configure.sh index f8329aacd..88698fd1f 100755 --- a/build/make/configure.sh +++ b/build/make/configure.sh @@ -664,7 +664,7 @@ process_common_toolchain() { 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} @@ -695,10 +695,17 @@ process_common_toolchain() { 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 @@ -747,13 +754,9 @@ process_common_toolchain() { || 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 diff --git a/configure b/configure index 7c64d779f..a260da0cf 100755 --- a/configure +++ b/configure @@ -79,11 +79,13 @@ EOF # 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" @@ -95,6 +97,7 @@ all_platforms="${all_platforms} iwmmxt2-wince-vs8" 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" @@ -159,6 +162,7 @@ enable fast_unaligned #allow unaligned accesses, if supported by hw enable md5 enable spatial_resampling enable multithread +enable os_support [ -d ${source_path}/../include ] && enable alt_tree_layout for d in vp8; do @@ -256,6 +260,7 @@ CONFIG_LIST=" small arm_asm_detok postproc_visualizer + os_support experimental ${EXPERIMENT_LIST} diff --git a/examples.mk b/examples.mk index a30205d31..89c93db62 100644 --- a/examples.mk +++ b/examples.mk @@ -93,8 +93,16 @@ vp8cx_set_ref.DESCRIPTION = VP8 set encoder reference frame # 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. diff --git a/md5_utils.c b/md5_utils.c index 455d9cd2b..9a584fab7 100644 --- a/md5_utils.c +++ b/md5_utils.c @@ -20,8 +20,6 @@ * Still in the public domain. */ -#include /* for stupid systems */ - #include /* for memcpy() */ #include "md5_utils.h" diff --git a/vp8/common/arm/armv6/sixtappredict8x4_v6.asm b/vp8/common/arm/armv6/sixtappredict8x4_v6.asm index 8b9939484..029e02aa0 100644 --- a/vp8/common/arm/armv6/sixtappredict8x4_v6.asm +++ b/vp8/common/arm/armv6/sixtappredict8x4_v6.asm @@ -243,8 +243,6 @@ skip_secondpass_hloop 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_ diff --git a/vp8/common/arm/neon/bilinearpredict16x16_neon.asm b/vp8/common/arm/neon/bilinearpredict16x16_neon.asm index bb72bad1f..79e1a6935 100644 --- a/vp8/common/arm/neon/bilinearpredict16x16_neon.asm +++ b/vp8/common/arm/neon/bilinearpredict16x16_neon.asm @@ -350,10 +350,7 @@ filt_blk2d_spo16x16_loop_neon 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 diff --git a/vp8/common/arm/neon/bilinearpredict4x4_neon.asm b/vp8/common/arm/neon/bilinearpredict4x4_neon.asm index 6d4820b7e..10cd1b8bd 100644 --- a/vp8/common/arm/neon/bilinearpredict4x4_neon.asm +++ b/vp8/common/arm/neon/bilinearpredict4x4_neon.asm @@ -123,10 +123,7 @@ skip_secondpass_filter 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 diff --git a/vp8/common/arm/neon/bilinearpredict8x4_neon.asm b/vp8/common/arm/neon/bilinearpredict8x4_neon.asm index b9f3ce034..bf37bb0d6 100644 --- a/vp8/common/arm/neon/bilinearpredict8x4_neon.asm +++ b/vp8/common/arm/neon/bilinearpredict8x4_neon.asm @@ -128,10 +128,7 @@ skip_secondpass_filter 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 diff --git a/vp8/common/arm/neon/bilinearpredict8x8_neon.asm b/vp8/common/arm/neon/bilinearpredict8x8_neon.asm index f7a7d1496..9b29df6c3 100644 --- a/vp8/common/arm/neon/bilinearpredict8x8_neon.asm +++ b/vp8/common/arm/neon/bilinearpredict8x8_neon.asm @@ -176,10 +176,7 @@ skip_secondpass_filter 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 diff --git a/vp8/common/arm/neon/loopfilter_neon.asm b/vp8/common/arm/neon/loopfilter_neon.asm index bf0c35721..d3a79f640 100644 --- a/vp8/common/arm/neon/loopfilter_neon.asm +++ b/vp8/common/arm/neon/loopfilter_neon.asm @@ -397,7 +397,8 @@ bx lr ENDP ; |vp8_loop_filter_horizontal_edge_y_neon| - AREA loopfilter_dat, DATA, READONLY +;----------------- + _lf_coeff_ DCD lf_coeff lf_coeff diff --git a/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm b/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm index 0b84dc750..5fe7e7e6d 100644 --- a/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm +++ b/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm @@ -104,10 +104,7 @@ 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 diff --git a/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm b/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm index a793d095a..c30378b9c 100644 --- a/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm +++ b/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm @@ -145,10 +145,7 @@ 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 diff --git a/vp8/common/arm/neon/mbloopfilter_neon.asm b/vp8/common/arm/neon/mbloopfilter_neon.asm index 255dd5619..981adffd1 100644 --- a/vp8/common/arm/neon/mbloopfilter_neon.asm +++ b/vp8/common/arm/neon/mbloopfilter_neon.asm @@ -505,7 +505,8 @@ bx lr ENDP ; |vp8_mbloop_filter_neon| - AREA mbloopfilter_dat, DATA, READONLY +;----------------- + _mblf_coeff_ DCD mblf_coeff mblf_coeff diff --git a/vp8/common/arm/neon/shortidct4x4llm_neon.asm b/vp8/common/arm/neon/shortidct4x4llm_neon.asm index d77a2879e..16c4d2d24 100644 --- a/vp8/common/arm/neon/shortidct4x4llm_neon.asm +++ b/vp8/common/arm/neon/shortidct4x4llm_neon.asm @@ -113,10 +113,7 @@ 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 diff --git a/vp8/common/arm/neon/sixtappredict16x16_neon.asm b/vp8/common/arm/neon/sixtappredict16x16_neon.asm index e434a709c..3c22fa19b 100644 --- a/vp8/common/arm/neon/sixtappredict16x16_neon.asm +++ b/vp8/common/arm/neon/sixtappredict16x16_neon.asm @@ -476,10 +476,7 @@ secondpass_only_inner_loop_neon 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 diff --git a/vp8/common/arm/neon/sixtappredict4x4_neon.asm b/vp8/common/arm/neon/sixtappredict4x4_neon.asm index 3d22d775a..2dc3f591f 100644 --- a/vp8/common/arm/neon/sixtappredict4x4_neon.asm +++ b/vp8/common/arm/neon/sixtappredict4x4_neon.asm @@ -407,10 +407,7 @@ secondpass_filter4x4_only 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 diff --git a/vp8/common/arm/neon/sixtappredict8x4_neon.asm b/vp8/common/arm/neon/sixtappredict8x4_neon.asm index 1dd6b1b37..0904f52ca 100644 --- a/vp8/common/arm/neon/sixtappredict8x4_neon.asm +++ b/vp8/common/arm/neon/sixtappredict8x4_neon.asm @@ -458,10 +458,7 @@ secondpass_filter8x4_only 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 diff --git a/vp8/common/arm/neon/sixtappredict8x8_neon.asm b/vp8/common/arm/neon/sixtappredict8x8_neon.asm index 37255c758..33af86f8f 100644 --- a/vp8/common/arm/neon/sixtappredict8x8_neon.asm +++ b/vp8/common/arm/neon/sixtappredict8x8_neon.asm @@ -509,10 +509,7 @@ filt_blk2d_spo8x8_loop_neon 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 diff --git a/vp8/common/threading.h b/vp8/common/threading.h index 1929f7c4f..0dd7bbc4c 100644 --- a/vp8/common/threading.h +++ b/vp8/common/threading.h @@ -14,6 +14,8 @@ #define VPXINFINITE 10000 /* 10second. */ +#if CONFIG_OS_SUPPORT + /* Thread management macros */ #ifdef _WIN32 /* Win32 */ @@ -88,4 +90,8 @@ #define x86_pause_hint() #endif +#else /* CONFIG_OS_SUPPORT = 0 */ +#define THREAD_FUNCTION void * +#endif /* CONFIG_OS_SUPPORT */ + #endif diff --git a/vp8/decoder/threading.c b/vp8/decoder/threading.c index fc8406eae..930d9b913 100644 --- a/vp8/decoder/threading.c +++ b/vp8/decoder/threading.c @@ -9,7 +9,7 @@ */ -#ifndef WIN32 +#if !defined(WIN32) && CONFIG_OS_SUPPORT == 1 # include #endif #ifdef __APPLE__ diff --git a/vp8/encoder/arm/neon/fastfdct4x4_neon.asm b/vp8/encoder/arm/neon/fastfdct4x4_neon.asm index 8c191a753..1cc0bd781 100644 --- a/vp8/encoder/arm/neon/fastfdct4x4_neon.asm +++ b/vp8/encoder/arm/neon/fastfdct4x4_neon.asm @@ -112,10 +112,7 @@ 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 diff --git a/vp8/encoder/arm/neon/fastfdct8x4_neon.asm b/vp8/encoder/arm/neon/fastfdct8x4_neon.asm index ca351a1c4..f6e8bbb83 100644 --- a/vp8/encoder/arm/neon/fastfdct8x4_neon.asm +++ b/vp8/encoder/arm/neon/fastfdct8x4_neon.asm @@ -165,10 +165,7 @@ 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 diff --git a/vp8/encoder/arm/neon/shortfdct_neon.asm b/vp8/encoder/arm/neon/shortfdct_neon.asm index 5af5cb888..1b7f36277 100644 --- a/vp8/encoder/arm/neon/shortfdct_neon.asm +++ b/vp8/encoder/arm/neon/shortfdct_neon.asm @@ -122,10 +122,7 @@ 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 diff --git a/vp8/encoder/arm/neon/vp8_subpixelvariance16x16_neon.asm b/vp8/encoder/arm/neon/vp8_subpixelvariance16x16_neon.asm index 1475f76df..5107d8b99 100644 --- a/vp8/encoder/arm/neon/vp8_subpixelvariance16x16_neon.asm +++ b/vp8/encoder/arm/neon/vp8_subpixelvariance16x16_neon.asm @@ -416,10 +416,7 @@ sub_pixel_variance16x16_neon_loop 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 diff --git a/vp8/encoder/arm/neon/vp8_subpixelvariance8x8_neon.asm b/vp8/encoder/arm/neon/vp8_subpixelvariance8x8_neon.asm index cf4da62fa..38b58780a 100644 --- a/vp8/encoder/arm/neon/vp8_subpixelvariance8x8_neon.asm +++ b/vp8/encoder/arm/neon/vp8_subpixelvariance8x8_neon.asm @@ -215,10 +215,7 @@ sub_pixel_variance8x8_neon_loop 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 diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c index cde0ece17..4a655b3c4 100644 --- a/vp8/encoder/rdopt.c +++ b/vp8/encoder/rdopt.c @@ -874,7 +874,7 @@ int vp8_rd_pick_intra_mbuv_mode(VP8_COMP *cpi, MACROBLOCK *x, int *rate, int *ra rate_to = rd_cost_mbuv(x); rate = rate_to + x->intra_uv_mode_cost[x->e_mbd.frame_type][x->e_mbd.mode_info_context->mbmi.uv_mode]; - distortion = vp8_get_mbuvrecon_error(IF_RTCD(&cpi->rtcd.variance), x); + distortion = ENCODEMB_INVOKE(&cpi->rtcd.encodemb, mbuverr)(x) / 4; this_rd = RDCOST(x->rdmult, x->rddiv, rate, distortion); diff --git a/vpx_ports/vpx_timer.h b/vpx_ports/vpx_timer.h index 37a0c7cb2..c8335a0a8 100644 --- a/vpx_ports/vpx_timer.h +++ b/vpx_ports/vpx_timer.h @@ -12,6 +12,8 @@ #ifndef VPX_TIMER_H #define VPX_TIMER_H +#if CONFIG_OS_SUPPORT + #if defined(_WIN32) /* * Win32 specific includes @@ -93,5 +95,27 @@ vpx_usec_timer_elapsed(struct vpx_usec_timer *t) #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 diff --git a/vpxdec.c b/vpxdec.c index dd1796380..ca9af1ec1 100644 --- a/vpxdec.c +++ b/vpxdec.c @@ -17,14 +17,7 @@ #include #include #include -#if defined(_WIN32) -#include -#define snprintf _snprintf -#define isatty _isatty -#define fileno _fileno -#else -#include -#endif + #define VPX_CODEC_DISABLE_COMPAT 1 #include "vpx_config.h" #include "vpx/vpx_decoder.h" @@ -38,6 +31,17 @@ #include "tools_common.h" #include "nestegg/include/nestegg/nestegg.h" +#if CONFIG_OS_SUPPORT +#if defined(_WIN32) +#include +#define snprintf _snprintf +#define isatty _isatty +#define fileno _fileno +#else +#include +#endif +#endif + #ifndef PATH_MAX #define PATH_MAX 256 #endif @@ -866,7 +870,7 @@ int main(int argc, const char **argv_) 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) { @@ -875,7 +879,7 @@ int main(int argc, const char **argv_) "override.\n"); return EXIT_FAILURE; } - +#endif input.infile = infile; if(file_is_ivf(infile, &fourcc, &width, &height, &fps_den, &fps_num)) diff --git a/vpxenc.c b/vpxenc.c index 2c133e718..d0f4c2348 100755 --- a/vpxenc.c +++ b/vpxenc.c @@ -12,7 +12,7 @@ /* 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 @@ -58,6 +58,14 @@ typedef __int64 off_t; #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