summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure6
-rw-r--r--ffplay.c25
2 files changed, 29 insertions, 2 deletions
diff --git a/configure b/configure
index 044fa24d92..8b8ce6cdeb 100755
--- a/configure
+++ b/configure
@@ -315,12 +315,12 @@ make="gmake"
;;
OS/2)
TMPE=$TMPE".exe"
-ar="emxomfar -p64"
+ar="emxomfar -p128"
ranlib="echo ignoring ranlib"
strip="echo ignoring strip"
CFLAGS="-Zomf"
LDFLAGS="-Zomf -Zstack 16384 -s"
-SHFLAGS=""
+SHFLAGS="-Zdll -Zomf"
FFSLDFLAGS=""
LIBPREF=""
LIBSUF=".lib"
@@ -333,7 +333,9 @@ audio_oss="no"
dv1394="no"
network="no"
ffserver="no"
+vhook="no"
os2="yes"
+
;;
*) ;;
esac
diff --git a/ffplay.c b/ffplay.c
index f74f0e4e4f..161f34e237 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -28,6 +28,23 @@
#undef main /* We don't want SDL to override our main() */
#endif
+#ifdef CONFIG_OS2
+#define INCL_DOS
+ #include <os2.h>
+ #include <stdio.h>
+
+ void MorphToPM()
+ {
+ PPIB pib;
+ PTIB tib;
+
+ DosGetInfoBlocks(&tib, &pib);
+
+ // Change flag from VIO to PM:
+ if (pib->pib_ultype==2) pib->pib_ultype = 3;
+ }
+#endif
+
#if defined(__linux__)
#define HAVE_X11
#endif
@@ -1887,6 +1904,14 @@ int main(int argc, char **argv)
/* register all codecs, demux and protocols */
av_register_all();
+ #ifdef CONFIG_OS2
+ MorphToPM(); // Morph the VIO application to a PM one to be able to use Win* functions
+
+ // Make stdout and stderr unbuffered
+ setbuf( stdout, NULL );
+ setbuf( stderr, NULL );
+ #endif
+
parse_options(argc, argv, options);
if (!input_filename)