Commit Graph

2140 Commits (04925993b0ec29f086afeb80d2f017994e9a775e)

Author SHA1 Message Date
jp9000 372a23de68 win-capture: Use inline define with VC only
mingw already supports the regular inline keyword in C; VC does not.
2015-02-09 03:55:17 -08:00
jp9000 12a000cae5 win-capture: Refactor inline functions
Apparently someone dumb (aka me) neglected to properly handle the inline
graphics hook API functions.  You're not supposed to 'extern' inline
functions, they need to be defined for each file when ever they're used.
2015-02-09 03:51:08 -08:00
jp9000 91b33908d9 win-capture: Remove unused static variables 2015-02-09 03:50:50 -08:00
jp9000 fce3cf6bdb win-capture: static keyword comes before const 2015-02-09 03:49:48 -08:00
jp9000 f8c7df2616 win-capture: Fix bug initializing via d3d9 swap
Apparently neglected to use the reference operator.  I think this may
partially be one of the reasons why many developers still choose to use
pointers instead of references, but fortunately an actual GOOD compiler
warns about this (aka anything but vc)
2015-02-09 03:49:47 -08:00
jp9000 fbf881ecdd win-capture: Fix enum switch warnings
The enum switch warning is used to signify when you are missing
enum values.
2015-02-09 03:49:46 -08:00
jp9000 253989bd72 win-capture: Mark unused parameters 2015-02-09 03:49:45 -08:00
jp9000 04c54162b2 win-capture: Fix ptr -> int cast warnings (mingw) 2015-02-09 03:49:44 -08:00
jp9000 2301a6f578 win-capture: Clarify if statement via inline func
Clears up a warning (to prevent && and || confusion), and clarifies what
specifically the if statement is trying to accomplish (check to see if
the capture is valid)
2015-02-09 03:49:43 -08:00
jp9000 e2ee8adf77 win-capture: Fix potentially uninitialized vars 2015-02-09 03:49:20 -08:00
jp9000 aa3bdd9845 win-capture: Fix incorrect parameter type warning
Was using const char** when the parameter expects const uint8_t**
2015-02-09 03:49:19 -08:00
jp9000 6b38fa35b0 Use _MSC_VER for MSVC-specific pragmas
These aren't used on mingw so they need to be surrounded by #ifdef
_MSC_VER
2015-02-09 03:49:18 -08:00
jp9000 73d3be9311 obs-outputs: Use INVALID_SOCKET instead of -1
On windows, for whatever reason sockets use the SOCKET type which is not
a signed integer.  Still, even though it's not a signed integer, -1 is
used to indicate an invalid socket, but the way you use it is via
microsoft's fabulously dumb little INVALID_SOCKET define, so we have to
make librtmp use that instead.
2015-02-09 03:49:17 -08:00
jp9000 e26dec916e libobs: Use windows wide <-> UTF8 conversion
If on windows, use the windows UTF conversion functions due to the fact
that the existing utf code is meant for 32bit wide characters, while the
windows conversion functions will properly handle 16bit wide characters.
2015-02-09 03:49:16 -08:00
jp9000 0c30dca526 libobs: Update to latest version of ComPtr.hpp 2015-02-09 03:49:15 -08:00
jp9000 5dfecab15c Fix windows printf format warnings (from mingw) 2015-02-09 03:49:14 -08:00
jp9000 0c1d121ff2 Remove various unused variables
Unused variables detected by mingw
2015-02-09 03:49:13 -08:00
jp9000 f9d4a957c1 Disable -Wmissing-braces
This warning is somewhat insignificant for most of what we do; just
warns about missing braces for sub-structures, but most of the time it
wrongly triggers on = {0}, which is a standard way of initializing a
structure to 0 in C.
2015-02-09 03:48:25 -08:00
martell a83e74dc1c Disable SEH for mingw-w64
The SEH implementation is not quite working properly in mingw-w64, so
disable it for the time being.
2015-02-09 03:47:27 -08:00
martell 5d184dc8e5 obs-d3d11: use sprintf for mingw-w64
We have a sprintf_s function in mingw-w64, but it's the it won't compile
with visual studio because it's the C11 specification (aka the correct
specification that's not made by morons).  Microsoft's version differs
to the specification (and is made by morons), so fall back to sprintf

(note if you can't tell, this commit message was edited by Jim)
2015-02-09 03:46:11 -08:00
martell d1a1a84722 obs-d3d11: Use cinttypes header (mingw)
There appears to be a bug with mingw where including the regular C
inttypes.h won't work; instead you have to use the 'cinttypes' C++
version.
2015-02-09 03:43:56 -08:00
martell e96bd8c6bb obs-d3d11: include float.h for FLT_MAX
gcc expects this header to be included
2015-02-09 03:41:59 -08:00
martell c0827212df UI: use _WIN32 instead of WIN32
_WIN32 is a compiler define so it should be used.  WIN32 is only valid
when it's defined in a header.
2015-02-09 03:41:58 -08:00
martell e0fab8888f test-input: avoid w32-pthreads for mingw-w64 2015-02-09 03:41:57 -08:00
martell 97cc9b610a win-capture: on mingw-w64 support try and catch 2015-02-09 03:41:56 -08:00
martell c5478f52d9 win-capture: explicitly cast function pointers
This solves invalid conversions when building with gcc
2015-02-09 03:41:55 -08:00
martell 1e056fd7ec win-capture: deal with a 32bit handle cast errors
The HWND type is a void pointer, but HWND values are global and always
32bit despite, so casting to 32bit can cause cast warnings on actual
good compilers like gcc via mingw.  This change correctly handles the
casting to 32bits without producing unwanted warnings or errors on
mingw.
2015-02-09 03:41:54 -08:00
martell c5fa22ae93 win-capture: avoid multiple definitions of data
At link time unless they are defined static they will conflict
2015-02-09 03:41:54 -08:00
martell 45cec546bd win-capture: fix link libs for mingw-w64
win-capture should not postfix .lib to psapi.

The graphics hook also requires psapi when linking.

Also change some link libs as mingw-w64 libraries are not postfixed
.lib.
2015-02-09 03:41:53 -08:00
martell d161f92105 obs-output: avoid w32-pthreads for mingw-w64
mingw-w64 provides its own pthreads library.

Also, change link libs as mingw-w64 libraries are not postfixed .lib
2015-02-09 03:41:52 -08:00
martell b8055ed944 obs-ffmpeg: avoid w32-pthreads for mingw-w64
mingw-w64 provides its own pthreads library
2015-02-09 03:41:51 -08:00
martell 27c4336eed libobs-d3d11: Remove Microsoft's dxgi.h
I have added LGPL idl's for d3d11 and dxgi to mingw-w64, so we can
remove the existing mingw helper files from libobs-d3d11
2015-02-09 03:41:50 -08:00
martell f9fa9c289f libobs: fix warning when logging the win version
The OSVERSIONINFOW structure contains DWORD variables, so to keep mingw
happy this should be printed with %ld
2015-02-09 03:41:49 -08:00
martell 9dd542f4fb libobs: fix warning when logging the cpu speed
Speed is a DWORD and should be printed as %ld.  This will keep mingw
happy and warning free
2015-02-09 03:41:49 -08:00
martell ef37b9b888 libobs: fix windows version log warning
OSVERSIONINFOW uses SIZE_T so cast to unsigned long instead.
2015-02-09 03:41:48 -08:00
martell 119c06198a deps-glad: don't build with -fPIC on windows
-fPIC generates unwanted warnings in mingw on windows.
2015-02-09 03:41:47 -08:00
martell e13a19207f wasapi: add PKEY_Device_FriendlyName on mingw-w64
Hopefully we can get this function merged for mingw-w64 4.1.  As for the
4.0 release, adding a new header is a big change, it'll have to wait for
the next version.
2015-02-09 03:41:46 -08:00
martell 5fa4889c9c dshow: call to CapsMatch is missing an argument
Evidently Visual Studio did not complain about this.  GCC however is
much more strict about this.
2015-02-09 03:41:45 -08:00
martell 4f5807e0b0 dshow: link to correct uuid libs
Remove the .lib postfix from strmiids

ksuser provides KSCATEGORY_ENCODER and similar GUIDS used

wmcodecdspuuid provides MEDIASUBTYPE_H264 MEDIASUBTYPE_RAW_AAC1 and
MEDIASUBTYPE_I420 so no need to define them in dshow-formats.  The
submodule will have to be updated to support this change.
2015-02-09 03:41:45 -08:00
martell 23d39ea5a8 libobs: threading-windows mingw-w64 support
Enable support for mingw-w64 in threading-windows.c
2015-02-09 03:41:44 -08:00
martell 079d15d518 libobs: mingw-w64 threading-posix
Enable support for mingw-w64 in threading-posix.c
2015-02-09 03:41:43 -08:00
martell 47c86b6cbe libobs: avoid using to w32-pthreads for mingw-w64
mingw-w64 provides its own pthreads library.

also change some link libs as mingw-w64 libraries are not postfixed .lib
2015-02-09 03:41:37 -08:00
martell c83a95983b cmake: set windows version to vista on mingw-w64
mingw-w64 defaults to xp, so when building we set it to vista because
function CancelIoEx is used in ipc-util/pipe-windows.c.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363792.aspx
2015-02-08 06:41:08 -08:00
martell e869a914b0 cmake: exclude w32-pthreads for mingw-w64
mingw-w64 has its own pthreads library
2015-02-08 06:40:15 -08:00
jp9000 21ec81ebcc UI: Do not allow invalid downscale/rescale values
For the 'output resolution' setting in video settings, do not show
values in the list that it does not support (width must be aligned to a
128bit boundry, and height must be divisible by two)

For the 'rescale' settings in advanced outputs, the scales must all be
divisible by two.
2015-02-08 01:31:02 -08:00
jp9000 c69e7c96f3 UI: Base encoder rescales on output resolution
The 'rescale' values in advanced output section are supposed to be based
upon the output resolution of the program.  Meaning they should not be
used for scaling up, because the resolution downloaded from the graphics
processor is the output resolution set in video settings; thus any
resolution you set for the 'rescale' values is scaled from that.
2015-02-08 01:29:15 -08:00
jp9000 bd78db91e9 UI: Fix encoder rescaling for streaming
The "rescale" option for streaming in the advanced output settings was
not properly checking the parameter output of sscanf.  sscanf returns
the number of values that were found, not the number of string matches.
2015-02-08 01:11:34 -08:00
jp9000 99c674e41f libobs: Add UI-independent plugin search paths
Adds an additional search path for UI-independent and
installation-independent plugins for windows/mac.

Windows:
%appdata%/obs-plugins/

Mac:
~/Library/Application Support/obs-plugins/

Plugin directory format is [module]/bin and [module]/data.

On windows, for 32bit binaries:
[module]/bin/32bit

and 64bit binaries:
[module]/bin/64bit
2015-02-08 00:55:26 -08:00
jp9000 7e3efa86e5 libobs: Don't search '.' and '..' dirs for modules
On windows doing os_glob will also include '.' and '..', exclude these
when searching for modules.
2015-02-08 00:54:07 -08:00
jp9000 bbd48c7bf2 UI: Isolate filter localization strings
To prevent from causing confusion/issues for our most awesome and
respected locale editors, only localize and translate the relevant text
rather than the extensions of the filter.
2015-02-07 12:12:12 -08:00