Oooops,
Here is the patch.
Cheers,
Pedro Alves
Pedro Alves escreveu:
Danny Backx escreveu:
On Mon, 2007-01-22 at 21:13 +0000, Cool_Zer0 wrote:
I just want to be able to decompress H.263 :(
Now that I've compiled FFMpeg it seems that isn't working correctly...
Is this something we can help you with ?
Another user (Daniel, CCed) has reported me privately that he built
FFMpeg with cegcc, and that loading it from an MSVC app wasn't
working. My guess is that the cegcc.dll isn't being correctly
initialized. There was a thread about that a few months ago, about someone
loading a cegcc based dll into a MSVC app, and that resolved into a
patch being integrated into cegcc. I can't find that
thread in my archives, but the symptoms were very close. Anyway, with
current mingw32ce from trunk and with the attached
patch I could build ffmpeg with the following options.
../ffmpeg-checkout-2007-01-21/configure \
--enable-mingwce \
--cross-compile \
--cross-prefix=arm-wince-mingw32ce- \
--arch=arm \
--target-os=WinCE \
--disable-static \
--enable-shared
The new math stuff is needed because ffmpeg is calling llrint.
I didn't try building with any plugins enabled. Nuno, Daniel, could you
try this?
I have no idea if it runs or if it runs correctly. I never used FFMpeg
before. Any hints on how to test it?
I think I may take a stab at building VLC with this. Should be a smooth
re-port, since it used to build with
the VLC mingwce toolchain (Looks like the nightly builds for WinCE
stopped a year ago).
Anyway, if this is reported to work, I will clean a bit the errno stuff
(perhaps introduce AV_ENOMEM, etc.) and
post a patch upstream.
Cheers,
Pedro Alves
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel
Index: configure
===================================================================
--- configure (revision 7594)
+++ configure (working copy)
@@ -103,6 +103,7 @@ show_help(){
echo " --source-path=PATH path to source code [$source_path]"
echo " --cross-prefix=PREFIX use PREFIX for compilation tools
[$cross_prefix]"
echo " --cross-compile assume a cross-compiler is used"
+ echo " --target-os Set the target OS. Only valid when cross
compiling."
echo " --cc=CC use C compiler CC [$cc]"
echo " --make=MAKE use specified make [$make]"
echo " --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]"
@@ -661,8 +662,24 @@ memalign_hack="no"
asmalign_pot="unknown"
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
+# Handle these earlier, the rest will be handled after setting
+# the target OS defaults.
+for opt do
+ optval="${opt#*=}"
+ case "$opt" in
+ --cross-compile) cross_compile=yes
+ ;;
+ --target-os=*) targetos="$optval"
+ ;;
+ esac
+done
+
# OS specific
+
+if [ "$cross_compile" != "yes" ]; then
targetos=`uname -s`
+fi
+
case $targetos in
BeOS)
PREFIX="/boot/home/config"
@@ -777,6 +794,11 @@ SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
FFSERVERLDFLAGS=-Wl,-bind_at_load
;;
+WinCE* | MINGW32CE*)
+mingw32="yes"
+wince="yes"
+add_extralibs "-lmmtimer"
+;;
MINGW32*)
# Note: the rest of the mingw32 config is done afterwards as mingw32
# can be forced on the command line for Linux cross compilation.
@@ -891,6 +913,8 @@ for opt do
;;
--cross-compile) cross_compile=yes
;;
+ --target-os=*) targetos="$optval"
+ ;;
--cc=*) cc="$optval"
;;
--make=*) make="$optval"
@@ -1105,7 +1129,14 @@ EOF
EXESUF=".exe"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
- SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
+
+ case "$arch" in
+ x86_32) machine="i386" ;;
+ arm*) machine="arm" ;;
+ mips) machine="mips" ;;
+ sh4) machine="sh4" ;;
+ esac
+ SLIB_EXTRA_CMD="-lib /machine:$machine /def:\$(@:${SLIBSUF}=.def)"
SLIB_INSTALL_EXTRA_CMD="-install -m 644
\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)
\"\$(shlibdir)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\""
SHFLAGS="-shared
-Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a)
-Wl,--enable-runtime-pseudo-reloc"
fi
@@ -1832,6 +1863,7 @@ if test "$gpl" = "no" ; then
else
echo "License: GPL"
fi
+echo "Target OS $targetos"
echo "Creating config.mak and config.h..."
Index: ffmpeg.c
===================================================================
--- ffmpeg.c (revision 7594)
+++ ffmpeg.c (working copy)
@@ -19,7 +19,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#define HAVE_AV_CONFIG_H
+#ifndef __MINGW32CE__
#include <signal.h>
+#endif
#include <limits.h>
#include "avformat.h"
#include "swscale.h"
@@ -303,6 +305,7 @@ static void term_exit(void)
#endif
}
+#if defined (SIGINT) || defined (SIGTERM)
static volatile sig_atomic_t received_sigterm = 0;
static void
@@ -311,6 +314,7 @@ sigterm_handler(int sig)
received_sigterm = sig;
term_exit();
}
+#endif
static void term_init(void)
{
@@ -333,8 +337,13 @@ static void term_init(void)
signal(SIGQUIT, sigterm_handler); /* Quit (POSIX). */
#endif
+#ifdef SIGINT
signal(SIGINT , sigterm_handler); /* Interrupt (ANSI). */
+#endif
+#ifdef SIGTERM
signal(SIGTERM, sigterm_handler); /* Termination (ANSI). */
+#endif
+
/*
register a function to be called at normal program termination
*/
@@ -347,7 +356,9 @@ static void term_init(void)
/* read a key without blocking */
static int read_key(void)
{
-#ifdef __MINGW32__
+#ifdef __MINGW32CE__
+ return getchar();
+#elif defined __MINGW32__
if(kbhit())
return(getch());
#else
@@ -1833,7 +1844,11 @@ static int av_encode(AVFormatContext **o
stream_no_data = 0;
key = -1;
+#ifndef __MINGW32CE__
for(; received_sigterm == 0;) {
+#else
+ for(;;) {
+#endif
int file_index, ist_index;
AVPacket pkt;
double ipts_min;
@@ -3967,12 +3982,14 @@ int main(int argc, char **argv)
powerpc_display_perf_report();
#endif /* POWERPC_PERFORMANCE_REPORT */
+#ifndef __MINGW32CE__
if (received_sigterm) {
fprintf(stderr,
"Received signal %d: terminating.\n",
(int) received_sigterm);
exit (255);
}
+#endif
exit(0); /* not all OS-es handle main() return value */
return 0;
Index: libavutil/bswap.h
===================================================================
--- libavutil/bswap.h (revision 7594)
+++ libavutil/bswap.h (working copy)
@@ -116,7 +116,7 @@ static av_always_inline uint16_t bswap_1
#ifdef ARCH_ARM
static av_always_inline uint32_t bswap_32(uint32_t x){
- uint32_t t;
+ uint32_t t = 0;
__asm__ (
"eor %1, %0, %0, ror #16 \n\t"
"bic %1, %1, #0xFF0000 \n\t"
Index: libavutil/common.h
===================================================================
--- libavutil/common.h (revision 7594)
+++ libavutil/common.h (working copy)
@@ -37,11 +37,12 @@
# include <string.h>
# include <ctype.h>
# include <limits.h>
-# ifndef __BEOS__
-# include <errno.h>
-# else
+# ifdef __BEOS__
# include "berrno.h"
+# elif !defined __MINGW32CE__
+# include <errno.h>
# endif
+
# include <math.h>
#endif /* HAVE_AV_CONFIG_H */
Index: libavcodec/dv.c
===================================================================
--- libavcodec/dv.c (revision 7594)
+++ libavcodec/dv.c (working copy)
@@ -39,6 +39,7 @@
#include "mpegvideo.h"
#include "simple_idct.h"
#include "dvdata.h"
+#include "libavformat/avio.h"
//#undef NDEBUG
//#include <assert.h>
Index: libavcodec/sonic.c
===================================================================
--- libavcodec/sonic.c (revision 7594)
+++ libavcodec/sonic.c (working copy)
@@ -21,6 +21,7 @@
#include "avcodec.h"
#include "bitstream.h"
#include "golomb.h"
+#include "libavformat/avio.h"
/**
* @file sonic.c
Index: libavcodec/g726.c
===================================================================
--- libavcodec/g726.c (revision 7594)
+++ libavcodec/g726.c (working copy)
@@ -25,6 +25,7 @@
#include "avcodec.h"
#include "common.h"
#include "bitstream.h"
+#include "libavformat/avio.h"
/**
* G.726 11bit float.
Index: libavcodec/gifdec.c
===================================================================
--- libavcodec/gifdec.c (revision 7594)
+++ libavcodec/gifdec.c (working copy)
@@ -25,6 +25,7 @@
#include "avcodec.h"
#include "bytestream.h"
#include "lzw.h"
+#include "libavformat/avio.h"
#define GCE_DISPOSAL_NONE 0
#define GCE_DISPOSAL_INPLACE 1
Index: libavformat/utils.c
===================================================================
--- libavformat/utils.c (revision 7594)
+++ libavformat/utils.c (working copy)
@@ -2685,7 +2685,6 @@ int parse_frame_rate(int *frame_rate, in
* S+[.m...]
* @endcode
*/
-#ifndef CONFIG_WINCE
int64_t parse_date(const char *datestr, int duration)
{
const char *p;
@@ -2793,7 +2792,6 @@ int64_t parse_date(const char *datestr,
}
return negative ? -t : t;
}
-#endif /* CONFIG_WINCE */
/**
* Attempts to find a specific tag in a URL.
Index: libavformat/avio.h
===================================================================
--- libavformat/avio.h (revision 7594)
+++ libavformat/avio.h (working copy)
@@ -202,6 +202,15 @@ int udp_set_remote_url(URLContext *h, co
int udp_get_local_port(URLContext *h);
int udp_get_file_handle(URLContext *h);
+#ifdef __MINGW32CE__
+# define EPIPE 2
+# define EAGAIN 3
+# define ENOENT 4
+# define ENOMEM 5
+# define EINVAL 6
+# define EIO 7
+#endif
+
/* tcp.c */
extern URLProtocol tcp_protocol;
Index: libavformat/framehook.c
===================================================================
--- libavformat/framehook.c (revision 7594)
+++ libavformat/framehook.c (working copy)
@@ -18,7 +18,9 @@
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#ifndef __MINGW32CE__
#include <errno.h>
+#endif
#include "config.h"
#include "avformat.h"
#include "framehook.h"
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel