Commit Graph

95 Commits (ed7b37b522cfa6ce167fa2ad77df73114f95313c)

Author SHA1 Message Date
jp9000 62c2b1d74e Simplify media i/o interfaces
Completely revamped the entire media i/o data and handlers.  The
original idea was to have a system that would have connecting media
inputs and outputs, but at a certain point I realized that this was an
unnecessary complexity for what we wanted to do.  (Also, it reminded me
of directshow filters, and I HATE directshow with a passion, and
wouldn't wish it upon my greatest enemy)

Now, audio/video outputs are connected to directly, with better callback
handlers, and will eventually have the ability to automatically handle
conversions such as 4:4:4 to 4:2:0 when connecting to an input that uses
them.  Doing this will allow the video/audio i/o handlers to also
prevent duplicate conversion, as well as make it easier/simple to use.

My true goal for this is to make output and encoder plugins as simple to
create as possible.  I want to be able to be able to create an output
plugin with almost no real hassle of having to worry about image
conversions, media inputs/outputs, etc.  A plugin developer shouldn't
have to handle that sort of stuff when he/she doesn't really need to.

Plugins will be able to simply create a callback via obs_video() and/or
obs_audio(), and they will automatically receive the audio/video data in
the formats requested via a simple callback, without needing to do
almost anything else at all.
2014-01-14 01:58:47 -07:00
jp9000 f827ba38ef Added a sinewave audio test source
- Added a test audio sinewave test source that should just play a sine
   wave of the middle C note.  Using unsigned 8 bit mono to test
   ffmpeg's audio resampler, seems to work pretty good.

 - Fixed a boolean trap in threading.h for the event_init function, it
   now uses enum event_type, which can be EVENT_TYPE_MANUAL or
   EVENT_TYPE_AUTO, to specify whether the event is automatically reset
   or not.

 - Changed display names of test sources to something a little less
   vague.

 - Removed te whole "if timestamp is 0 just use current system time"
   when outputting source audio, if you want to use system time you
   should just use system time yourself.  Using 0 as some sort of
   "indicator" like that just makes things confusing, and prevents you
   from legitimately using 0 as a timestamp for your audio data.
2014-01-09 22:10:04 -07:00
jp9000 f4ebc44844 Updated VS2013 project dependencies
- Made is so that libobs is now marked as a dependency for the main
   application project 'obs'.
2014-01-06 08:50:07 -07:00
jp9000 e5ef03954e added name dialog code, moved 'using namespace std;' out of headers and into source files 2013-12-29 04:40:53 -07:00
jp9000 1c7272115a fixed project file settings for those renamed files and fixed a typo 2013-12-28 21:53:38 -07:00
jp9000 6ac6256ac5 fill in rest of signal/callback/proc 2013-12-26 04:26:17 -07:00
jp9000 e9ded173f1 add my signal/callback interface from another project, also update license of utility files to ISC 1.3 2013-12-25 22:40:33 -07:00
jp9000 991b5739d6 move libobs C++ bindings to libobs 2013-12-22 17:42:02 -07:00
jp9000 a8ada497b3 finish up preliminary settings stuff 2013-12-18 12:09:20 -07:00
jp9000 aead95f5e3 converted project to vs2013, removed 2010 support (ugh) 2013-12-14 16:01:30 -07:00
jp9000 7ba497fe61 add move constructor to wx connector class, add simple connector list class, add initial video settings class, update build files 2013-12-13 23:11:23 -07:00
jp9000 467362f584 added new settings management base class, updated main settings form, added to build files 2013-12-11 21:50:10 -07:00
jp9000 b0df5cf29c add settings window subclass files 2013-12-10 21:14:20 -07:00
jp9000 70290b8c2b fixed locale code, added locale files, made wx use locale files, fixed some bugs, and added platform-specific files to the main program 2013-12-07 10:22:56 -07:00
jp9000 0434ef0f62 change naming for some main program files for consistency 2013-12-06 09:16:33 -07:00
jp9000 00b55c9d95 moved wx forms and generated files into a discrete 'forms' directory 2013-12-06 06:48:21 -07:00
jp9000 7e89ebce46 add a 'wrapper' file for wx 2013-11-22 20:57:24 -07:00
jp9000 27be0a515b do first test drawing in wx 2013-11-22 20:43:48 -07:00
jp9000 4813c89cc6 renamed obs.cpp/hpp 2013-11-22 16:24:54 -07:00
jp9000 d8b49034c9 added jansson to the main project 2013-11-22 10:02:57 -07:00
jp9000 b159baf145 fix a few windows wx issues, make windows use default GUI fonts, and a few other minor tweaks 2013-11-09 00:19:38 -07:00
jp9000 f5e41f441e added initial main program and directshow files, finally have a UI functioning 2013-11-07 16:45:03 -07:00
jp9000 8847d11e8e adjust file locations to be more portable 2013-11-01 14:33:00 -07:00
jp9000 99d2965e21 fix a minor warning and make ffmpeg dependencies a little bit easier to deal with in VS 2013-10-30 18:19:52 -07:00
jp9000 60e6ddbf71 add audio resampling, add ffmpeg support 2013-10-30 17:07:01 -07:00
jp9000 93905e516b modify w32-pthreads location in source/project files 2013-10-28 06:29:12 -07:00
jp9000 a43e291577 fill in the texture_setimage function, fill in a few other functions, and change certain names to be a little more consistent 2013-10-25 10:25:28 -07:00
jp9000 ebbf4175d3 minor tweaks and get rid of the linker dependency I used for testing 2013-10-17 18:44:37 -07:00
jp9000 dfa2dc6eab fix up the rest of the GL code, add glew to project, add makefiles for opengl, fix makefiles so that it can be built with gcc, update project files to automatically output to the build directory 2013-10-16 23:31:18 -07:00
jp9000 9570f0b8d7 change names, fix some bugs, minor GL/D3D fixes, update tests, fix effect files, output a little more debug information 2013-10-14 12:37:52 -07:00
jp9000 3951babc93 add GL index buffers and a few tweaks to the helper functions 2013-10-11 13:00:39 -07:00
jp9000 0a4592a414 finish up GL vertex buffer code 2013-10-11 11:41:36 -07:00
jp9000 85e2fc6b07 add stage surfaces and texture copying 2013-10-10 17:39:56 -07:00
jp9000 c1939de49b added z-stencil buffers to GL and made a GS_MAX_TEXTURES macro 2013-10-10 12:37:03 -07:00
jp9000 904725390a changed all references of the old d3d11 filenames to the new filenames 2013-10-10 08:01:09 -07:00
jp9000 fda2ee1147 added initial GL shader code 2013-10-09 15:48:16 -07:00
jp9000 f9d1a4b9ed added first GLSL code, moved some graphics functions around, and adjusted some existing shader parser code 2013-10-06 18:29:29 -07:00
jp9000 3243bfbaa3 rearrange/cleanup GL texture stuff, and fill out GL cubemap texture functions (still need FBOs) 2013-10-05 09:25:12 -07:00
jp9000 75262e6e0b update graphics subsystem code to add mipmap support and also add initial GL texture stuff and helper functions 2013-10-04 08:55:33 -07:00
jp9000 7002821245 added GL subsystem prototypes 2013-10-02 23:14:15 -07:00
jp9000 317f36553d add files to project and change projects to static CRT 2013-10-02 00:59:34 -07:00
jp9000 e0393ba7a9 fixed static w32-pthreads initialization (release builds should work now on windows) 2013-10-01 18:16:23 -07:00
jp9000 a2dce06fa8 add initial opengl files and opengl project 2013-10-01 00:29:40 -07:00
jp9000 4e6affdfc3 add an optional aligned new operator and use it with the d3d11 subsystem to prevent SIMD crashes 2013-10-01 00:27:14 -07:00
jp9000 f255ae1922 first commit 2013-09-30 19:37:13 -07:00