1. 08 3月, 2014 6 次提交
    • J
      UI: Swap audio slots · b2202c48
      jp9000 提交于
      Had the audio restart slot connected to things that didn't require a
      restart
      b2202c48
    • J
      Fix an error and a few warnings · a9f5959b
      jp9000 提交于
      The strings didn't have ending double quotes.  No clue why this didn't
      fail in GCC and VC.  Well, VC is horrible but I expected better out of
      GCC.
      a9f5959b
    • J
      Activate user-selected audio devices · f2ee9507
      jp9000 提交于
       - Fix a bug where the initial audio data insertion would cause all
         audio data to unintentionally clear (mixed up < and > operators, damn
         human error)
      
       - Fixed a potential interdependant lock scenario with channel mutex
         locks and graphics mutex locks.  The main video thread could lock the
         graphics mutex and then while in the graphics mutex could lock the
         channels mutex.  Meanwhile in another thread, the channel mutex could
         get locked, and then the graphics mutex would get locked, causing a
         deadlock.
      
         The best way to deal with this is to not let mutexes lock within
         other mutexes, but sometimes it's difficult to avoid such as in the
         main video thread.
      
       - Audio devices should now be functional, and the devices in the audio
         settings can now be changed as desired.
      f2ee9507
    • J
      WASAPI: Change some errors messages to warnings · 2c3a3f4e
      jp9000 提交于
      There shouldn't be errors if the actual source has successfully been
      created, just warnings.
      2c3a3f4e
    • J
      Make audio devices save to settings · fd579fe7
      jp9000 提交于
      Also, revamp the settings dialog code and make it use signals and slots
      a bit better.
      fd579fe7
    • J
      Use only one widget for preview · e8044d08
      jp9000 提交于
      Modify the obs_display API so that it always uses an orthographic
      projection that is the size of the display, rather than OBS' base size.
      Having it do an orthographic projection to OBS' base size was silly
      because it meant that everything would be skewed if you wanted to draw
      1:1 in the display.  This deoes mean that the callbacks must handle
      resizing the images, but it's worth it to ensure 1:1 draw sizes.
      
      As for the preview widget, instead of making some funky widget within
      widget that resizes, it's just going to be a widget within the entire
      top layout.  Also changed the preview padding color to gray.
      e8044d08
  2. 07 3月, 2014 3 次提交
    • J
      Add a way to get default settings · 7d48dbb1
      jp9000 提交于
       - Implement a means of obtaining default settings for an
         input/output/encoder.  obs_source_defaults for example will return
         the default settings for a particular source type.
      
       - Because C++ doesn't have designated initializers, use functions in
         the WASAPI plugin to register the sources instead.
      7d48dbb1
    • J
      Move basic mode configuration to a separate file · e88ee063
      jp9000 提交于
      Having everything in global.ini meant that if you wanted different
      settings for studio mode, that it would also overwrite it for basic
      mode.  This way, the settings for each mode are separate, and you can
      use different settings for each mode.
      e88ee063
    • J
      Fixed basic settings window (forgot linux) · 9fb83cc2
      jp9000 提交于
      The function would fail to compile on linux because the variables didn't
      exist
      9fb83cc2
  3. 06 3月, 2014 2 次提交
    • J
      Load up the lists of audio devices in settings · 2448d0f2
      jp9000 提交于
      It will now load up a the list of audio input/output devices in the
      combo boxes in audio settings.
      2448d0f2
    • J
      Reimplement monitor capture · 4f7ab552
      jp9000 提交于
       - Implement windows monitor capture (code is so much cleaner than in
         OBS1).  Will implement duplication capture later
      
       - Add GDI texture support to d3d11 graphics library
      
       - Fix precision issue with sleep timing, you have to call
         timeBeginPeriod otherwise windows sleep will be totally erratic.
      4f7ab552
  4. 04 3月, 2014 3 次提交
    • J
      WASAPI: Check the HRESULT values with FAILED · 3415960d
      jp9000 提交于
      I can't believe I did !res there.  Well I suppose I can believe it, but
      still.
      3415960d
    • J
      CoreAudio: Separate enumeration code · bec8a09b
      jp9000 提交于
      The enumeration code being up at the top was making things quite messy,
      so I split that code out to a separate set of files.
      bec8a09b
    • J
      Add WASAPI audio capture · 34858825
      jp9000 提交于
       - Add WASAPI audio capture for windows, input and output
      
       - Check for null pointer in os_dlopen
      
       - Add exception-safe 'WinHandle' and 'CoTaskMemPtr' helper classes that
         will automatically call CloseHandle on handles and call CoTaskMemFree
         on certain types of memory returned from windows functions
      
       - Changed the wide <-> MBS/UTF8 conversion functions so that you use
         buffers (like these functions are *supposed* to behave), and changed
         the ones that allocate to a different naming scheme to be safe
      34858825
  5. 03 3月, 2014 5 次提交
    • J
      CoreAudio: Don't reconnect if no output devices · 2fd57ed7
      jp9000 提交于
      Somehow this code didn't get included with the last commit.
      2fd57ed7
    • J
      CoreAudio: Fail if no output device found · 91644fbf
      jp9000 提交于
      Also, don't have it repeat trying to reconnect if no devices are found
      91644fbf
    • J
      Split output/input audio capture sources · 9c6da6f5
      jp9000 提交于
       - Split input and output audio captures so that they're different
         sources.  This allows easier handling and enumeration of audio
         devices without having to do some sort of string processing.
      
         This way the user interface code can handle this a bit more easily,
         and so that it doesn't confuse users either.  This should be done for
         all audio capture sources for all operating systems.  You don't have
         to duplicate any code, you just need to create input/output wrapper
         functions to designate the audio as input or output before creation.
      
       - Make it detect soundflower and wavtap devices as mac "output" devices
         (even though they're actually input) for the mac output capture, and
         make it so that users can select a default output capture and
         automatically use soundflower or wavtap.
      
         I'm not entirely happy about having to do this, but because mac is
         designed this way, this is really the only way to handle it that
         makes it easier for users and UI code to deal with.
      
         Note that soundflower and wavtap are still also designated as input
         devices, so will still show up in input device enumeration.
      
       - Remove pragma messages because they were kind polluting the other
         compiler messages and just getting in the way.  In the future we can
         just do a grep for TODO to find them.
      
       - Redo list property again, this time using a safer internal array,
         rather than requiring sketchy array inputs.  Having functions handle
         everything behind the scenes is much safer.
      
       - Remove the reference counter debug log code, as it was included
         unintentionally in a commit.
      9c6da6f5
    • J
      Remove categories from properties · b4ef6cee
      jp9000 提交于
      Categories added an unnecessary complexity to making properties, and
      would very likely almost never be used in most cases, and were more of a
      display feature.  The main issue is that it made property data more
      complex to work with, and I just didn't feel comfortable with that.
      
      Also, added a function to allow you to retrieve a porperty just by its
      name.
      b4ef6cee
    • J
      Check for duplicate names (function parser) · f91b4ef9
      jp9000 提交于
      f91b4ef9
  6. 02 3月, 2014 2 次提交
    • J
      Fix non-VS compile issues · 9db52da6
      jp9000 提交于
      As usual, microsoft treats all enums as integers, rather than actually
      even checking the enum type.  Worthless compiler.  Just complete
      garbage.
      9db52da6
    • J
      Simplify and improve 'list' property · 1eeece5b
      jp9000 提交于
      When a source/output/etc has a property of a 'list' type, there was no
      way to get the names associated with its values.  That, and it only
      supported lists of either text, or enums (0..[value] only).
      
      Now, you can associate translated names with those values, and use
      integer, float, or string values.  Put it all in to one function as well
      to simplify its usage.
      
      I plan on using this to help get enumerations from devices/etc for
      certain types of sources.  For example, if I get the properties of an
      audio source, I'd like to have a list of available devices with it as
      well.
      1eeece5b
  7. 01 3月, 2014 6 次提交
    • J
      Simplify and extend callback/signalling system · e9342143
      jp9000 提交于
      - Signals and dynamic callbacks now require declarations to be made
        before being used.  What this does is allows us to get information
        about the functions dynamically which can be relayed to the user and
        plugins for future extended usage (this should have big implications
        later for scripting in particular, hopefully).
      
      - Reduced the number of types calldata uses from "everything I could
        think of" to simply integer, float, bool, pointer/object, string.
        Integer data is now stored as long long.  Floats are now stored as
        doubles (check em).
      
      - Use a more consistent naming scheme for lexer error/warning macros.
      
      - Fixed a rather nasty bug where switching to an existing scene would
        cause it to increment sourceSceneRefs, which would mean that it would
        never end up never properly removing the source when the user clicks
        removed (stayed in limbo, obs_source_remove never got called)
      e9342143
    • J
      Give cf_parser functions better naming · e560a426
      jp9000 提交于
      e560a426
    • J
      CoreAudio: Detect default device change · f716de13
      jp9000 提交于
      If the default device changes, set the reconnect interval to 200
      milliseconds so it pretty much immediately tries to reinitialize the
      audio with the newly selected default device.  Otherwise, use 2000
      millisecond intervals, and assume disconnection.
      
      Also, reduced FFmpeg logging to just regular FFmpeg information rather
      than everything FFmpeg logs.
      f716de13
    • J
      Fix a warning and an error · 429195aa
      jp9000 提交于
      Happened because I compiled on windows and it only compiled
      windows-specific code.
      429195aa
    • J
      Be just a bit more consistent. · 94a2d207
      jp9000 提交于
      See, it can sometimes be a bit confusing.  These functions should
      definitely not fail under normal circumstances, and these errors may
      affect the user and/or application in some way.
      94a2d207
    • J
      Be more consistent about log levels · 771eac60
      jp9000 提交于
      LOG_ERROR should be used in places where though recoverable (or at least
      something that can be handled safely), was unexpected, and may affect
      the user/application.
      
      LOG_WARNING should be used in places where it's not entirely unexpected,
      is recoverable, and doesn't really affect the user/application.
      771eac60
  8. 28 2月, 2014 9 次提交
  9. 27 2月, 2014 4 次提交