1. 11 3月, 2014 19 次提交
    • F
      reformatted source to kernel style · 9095ad0a
      fryshorts 提交于
      9095ad0a
    • F
      fixed warnings · 09a75c53
      fryshorts 提交于
      09a75c53
    • F
      Removed unnecessary buffer · c558a7b6
      fryshorts 提交于
      Instead of copying the data from pulse to a local buffer and
      then push it to obs, the pointer from pulse is now used and
      pa_stream_drop() called afterwards.
      c558a7b6
    • Z
      In the API update the diffuse effect got renamed to image. · e67d7607
      Ziemas 提交于
      e67d7607
    • F
      added initial pulse audio input plugin · 42bc5edd
      fryshorts 提交于
      - first try at implementing a pulse audio input plugin,
        it is currently completely untested.
      
      - added license headers to source files
      42bc5edd
    • F
      Moved screen grabber code to _tick function · c00d9e3b
      fryshorts 提交于
      Moved the screen grabbing and texture generation to the
      _tick function in order to keep _render fast.
      Migrated xshm video source to the new plugin api.
      c00d9e3b
    • F
      Added initial Mouse pointer lib · 820de55a
      fryshorts 提交于
      Added library to get the mouse pointer with the XFixes
      extension and draw it via a sprite.
      820de55a
    • F
      added linux test module with first implementation of a screengrabber using the... · 12e1855e
      fryshorts 提交于
      added linux test module with first implementation of a screengrabber using the xshm extension for x11
      12e1855e
    • J
      Fix wrong linux function · 3aedfdfb
      jp9000 提交于
      Used the mac function instead by accident
      3aedfdfb
    • J
      Fix semaphore mac code and mac plugin · 5e1cac68
      jp9000 提交于
      Didn't convert the event names and didn't have the right mac includes
      5e1cac68
    • J
      Fix non-windows event code · c023ef69
      jp9000 提交于
      And remember to compile on non-windows systems before committing
      c023ef69
    • J
      Fix audio streaming and mac semaphores · 585fd8f9
      jp9000 提交于
      ...The reason why audio didn't work was because I overwrote the bitrate
      values.
      
      As for semaphores, mac doesn't support unnamed semaphores without using
      mach semaphores.  So, I just implemented a semaphore wrapper for each
      OS.
      585fd8f9
    • J
      Allow file names to be used instead of URLs · faabeff7
      jp9000 提交于
      faabeff7
    • J
      Fix minor warning (redundant code) · 9a07f9b8
      jp9000 提交于
      9a07f9b8
    • J
      CoreAudio: fix properties for input/output · 80683787
      jp9000 提交于
      Also, check that audio devices are available before setting defaults
      80683787
    • J
      Ensure URL and key are valid if trying to stream · 03fc5b92
      jp9000 提交于
      03fc5b92
    • J
      Ensure names are valid · 5288467a
      jp9000 提交于
      Ensure that a source has a valid name.  Duplicates aren't a big deal
      internally, but sources without a name are probably something that
      should be avoided.  Made is so that if a source is programmatically
      created without a name, it's assigned an index based name.
      
      In the main basic-mode window, made it check to make sure the name was
      valid as well.
      5288467a
    • J
      Fix a few warnings · 35e7a2a9
      jp9000 提交于
      35e7a2a9
    • J
      Add preliminary streaming code for testing · 02a07ea0
      jp9000 提交于
       - Add some temporary streaming code using FFmpeg.  FFmpeg itself is not
         very ideal for streaming; lack of direct control of the sockets and
         no framedrop handling means that FFmpeg is definitely not something
         you want to use without wrapper code.  I'd prefer writing my own
         network framework in this particular case just because you give away
         so much control of the network interface.  Wasted an entire day
         trying to go through FFmpeg issues.
      
         There's just no way FFmpeg should be used for real streaming (at
         least without being patched or submitting some sort of patch, but I'm
         sort of feeling "meh" on that idea)
      
         I had to end up writing multiple threads just to handle both
         connecting and writing, because av_interleaved_write_frame blocks
         every call, stalling the main encoder thread, and thus also stalling
         draw signals.
      
       - Add some temporary user interface for streaming settings.  This is
         just temporary for the time being.  It's in the outputs section of
         the basic-mode settings
      
       - Make it so that dynamic arrays do not free all their data when the
         size just happens to be reduced to 0.  This prevents constant
         reallocation when an array keeps going from 1 item to 0 items.  Also,
         it was bad to become dependent upon that functionality.  You must now
         always explicitly call "free" on it to ensure the data is free, and
         that's how it should be.  Implicit functionality can lead to
         confusion and maintainability issues.
      02a07ea0
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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