Commit Graph

59 Commits (29fb9cc9f43a7f10541eb5f7f8276239bfb6f84d)

Author SHA1 Message Date
jp9000 29fb9cc9f4 Fix FORCE_INLINE macro
Accidentally put the code within a _MSC_VER #ifdef, causing the macro to
not be found on non-VC compilers
2014-02-09 08:06:34 -07:00
jp9000 20fd2c82dc Fix UTF-8 signature detection
The signature detection code when reading UTF-8 files was causing the
UTF-8 strings read from file to allocate more data than they were
supposed to, causing the last 3 bytes to be garbage
2014-02-09 08:01:08 -07:00
jp9000 4be4dd735e Use force inlining of YUV conversion functions
Force inling of the 444->420 conversion functions because their CPU
usage goes up pretty heavily without it when compiling without
optimizations
2014-02-09 07:59:00 -07:00
jp9000 6c92cf5841 Implement output, improve video/audio subsystems
- Fill in the rest of the FFmpeg test output code for testing so it
   actually properly outputs data.

 - Improve the main video subsystem to be a bit more optimal and
   automatically output I420 or NV12 if needed.

 - Fix audio subsystem insertation and byte calculation.  Now it will
   seamlessly insert new audio data in to the audio stream based upon
   its timestamp value.  (Be extremely cautious when using floating
   point calculations for important things like this, and always round
   your values and check your values)

 - Use 32 byte alignment in case of future optimizations and export a
   function to get the current alignment.

 - Make os_sleepto_ns return true if slept, false if the time has
   already been passed before the call.

 - Fix sinewave output so that it actually properly calculates a middle
   C sinewave.

 - Change the use of row_bytes to linesize (also makes it a bit more
   consistent with FFmpeg's naming as well)
2014-02-09 05:51:06 -07:00
jp9000 3d6d43225f Add planar audio support, improve test output
- Add planar audio support.  FFmpeg and libav use planar audio for many
  encoders, so it was somewhat necessary to add support in libobs
  itself.

- Improve/adjust FFmpeg test output plugin.  The exports were somewhat
  messed up (making me rethink how exports should be done).  Not yet
  functional; it handles video properly, but it still does not handle
  audio properly.

- Improve planar video code.  The planar video code was not properly
  accounting for row sizes for each plane.  Specifying row sizes for
  each plane has now been added.  This will also make it more compatible
  with FFmpeg/libav.

- Fixed a bug where callbacks wouldn't create properly in audio-io and
  video-io code.

- Implement 'blogva' function to allow for va_list usage with libobs
  logging.
2014-02-07 03:03:54 -07:00
jp9000 a5372e9757 Finish the rest of the settings dialog code
- Move over the last of the original settings dialog code to QT.  It was
  actually a bit easier to write in the QT version.  wxWidgets was
  definitely not ideal for that because the pages would fully
  create/destroy every time.

- [Win32] Fix os_dlopen so that it only appends .dll if not present

- [MacOS] Fix name dialog text edit widget issue (it would be better if
  we could just use the list widget for editing labels, will have to
  look in to that in the future)

- Tweak the settings UI a bit more and make 30 FPS default

- Add a macro to convert a QString to a UTF-8 const char * string

- Rename build/plugins to build/obs-plugins

- Remove the last of the wxWidgets code
2014-01-26 15:36:15 -07:00
jp9000 93d15ef254 Fix some formatting issues and fix cmake file 2014-01-25 12:34:37 -07:00
BtbN 6a9dda87bd Restructure installation and package generation 2014-01-25 19:13:33 +01:00
BtbN 45ec80fb7d Full rewrite of all CMakeLists
CMake now works on all platforms
2014-01-24 18:56:32 +01:00
Zachary Lund 1deb27d502 Fixed os_gettime_ns to provide correct time in ns 2014-01-11 15:08:04 -06: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 e891b3fae8 Fixed bug with circlar buffer
- Circular buffer code wasn't correctly handling the splitting of
   newly placed data segments, the code was untested and turned out to
   just be backwards.  It now copied the data to the back and front of
   the buffer properly.
2014-01-09 22:02:11 -07:00
jp9000 6b8e84844a Add preliminary audio processing
- Mixing still isn't implemented, but the audio system should be able
   to start up, and mix at least once audio line for the time being.
   Will have to write some test audio sources to verify things are
   working properly, and build the rest of the output functionality.
2014-01-09 19:08:20 -07:00
Benjamin Klettbach ab1d4588e2 Revert "Merge pull request #19 from asgeirom/master"
This reverts commit 27ccb09473, reversing
changes made to b7eccedf8a.
2014-01-06 06:29:08 +01:00
Palana 7fa7af6c03 check for signalled event before pthread_cond_wait-ing
fixes a deadlock in obs_free_video/obs_video_thread where
video_output_stop would signal the update event before obs_video_thread
enters video_output_wait (the thread calling obs_free_video would
block on pthread_join and obs_video_thread would block on
pthread_cond_wait)
2014-01-06 02:04:32 +01:00
Asgeir Mortensen c95f133fac Adding <linux/time.h> for CLOCK_REALTIME define. 2014-01-04 10:29:06 +01: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 123ca280a0 fix unix version of os_get_config_path to make it append a slash to $HOME 2013-12-23 19:04:41 -07:00
jp9000 bb53a39aee change os_get_home_path to a better and more clear function, os_get_config_path 2013-12-23 18:59:54 -07:00
jp9000 399b0c8d10 apply configure video settings on startup 2013-12-22 23:40:07 -07:00
jp9000 991b5739d6 move libobs C++ bindings to libobs 2013-12-22 17:42:02 -07:00
jp9000 4da1c193dc fix minor bug in config file parser 2013-12-18 12:08:38 -07:00
jp9000 3b871a00fb fixed a bug where new locale text segments properly replace old ones if adding a new language file on top of another 2013-12-17 18:17:22 -07:00
jp9000 a4055e4257 fixed a bug writing to config files where it would use a brace instead of a bracket when creating a section 2013-12-17 18:16:36 -07:00
jp9000 0c3ed3ceca fixed bug with dynamic string where it wouldn't set the capacity properly 2013-12-17 18:15:47 -07:00
jp9000 50666040e5 allow loading of other locals on top of the current locale (to enable unfilled strings to default to english if necessary) 2013-12-17 13:55:09 -07:00
jp9000 ed388fc82e replaced boolean trap parameter in the base lexer 2013-12-16 00:05:27 -07:00
jp9000 aead95f5e3 converted project to vs2013, removed 2010 support (ugh) 2013-12-14 16:01:30 -07:00
jp9000 9743b0efc5 fixed a lexer bug with detecting alphanumeric character text (not happy about it though) 2013-12-12 21:46:29 -07:00
jp9000 5edc9cf9cb added some more config file functions for going through each section 2013-12-12 21:42:44 -07:00
jp9000 de21e622b5 removed os_gettime_ms, added os_file_exists 2013-12-12 21:41:46 -07:00
Ján Mlynek c37fe1fd16 added functions to platform-nix.c 2013-12-07 22:32:29 +01:00
jp9000 5d3f3e0d1b make text lookup use a simple linked lists rather than an unnecessary array of pointers 2013-12-07 11:23:49 -07:00
jp9000 9b882c097b should only check for ending quote character in locale data if it began with a quote 2013-12-07 10:25:34 -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
Palana e6017ec1ba changed allocation counter to uint64_t
also avoids format string confusion for bnum_allocs
2013-12-07 17:39:43 +01:00
Palana 968f9c03bd use %u for size_t on microsoft compilers 2013-12-07 16:50:05 +01:00
Palana 2284ef09fa compile libobs with -fobjc-arc 2013-12-06 21:31:42 +01:00
Palana 1bd2b9fd99 added os_get_home_path and os_mkdir to osx cocoa platform 2013-11-29 22:38:05 +01:00
jp9000 fcf7e508a9 added os_mkdir to platform functions 2013-11-23 23:35:03 -07:00
jp9000 3c6494a11d fixed a few bugs with config files, and replaced a boolean parameter with an enum 2013-11-23 23:34:38 -07:00
jp9000 e1da9099f9 remove ssize_t because it's not even used anyway anymore 2013-11-23 11:12:44 -07:00
Palana d7a04aea8c added osx cocoa support files 2013-11-14 18:31:18 +01:00
Palana f263d585bf enable format string diagnostics for blog and bcrash on gcc and clang 2013-11-14 18:31:18 +01:00
Palana 3b3d612ceb add noreturn attribute to def_crash_handler 2013-11-14 18:31:17 +01:00
John Bradley 21a0292f7a Removed unnecessary <malloc.h> include from bmem 2013-11-07 19:14:24 -06:00
jp9000 f5e41f441e added initial main program and directshow files, finally have a UI functioning 2013-11-07 16:45:03 -07:00
jp9000 0790148950 ...had the wrong code in the wrong function, fixed os_dlopen 2013-11-01 17:01:56 -07:00
jp9000 8847d11e8e adjust file locations to be more portable 2013-11-01 14:33:00 -07:00
jp9000 60e6ddbf71 add audio resampling, add ffmpeg support 2013-10-30 17:07:01 -07:00