1. 04 7月, 2015 19 次提交
    • J
      Merge pull request #444 from Gol-D-Ace/master · b0e8fe7b
      Jim 提交于
      rtmp-services: Add recommended video bitrate for Livecoding.tv
      b0e8fe7b
    • G
      7873d5b6
    • J
      Merge pull request #443 from Gol-D-Ace/master · 5832b226
      Jim 提交于
      rtmp-services: Add recommended video bitrate for Beam.pro
      5832b226
    • G
      3e742d13
    • J
      UI: Add menu options to open settings folders · 7c97e21a
      jp9000 提交于
      Adds "Show Settings Folder" and "Show Profile Folder" items to the file
      menu.
      7c97e21a
    • J
      UI: Add Profiles · f9314128
      jp9000 提交于
      Adds setting profiles to the basic user interface.  For each profile, a
      subdirectory for the profile will be created in
      [config_dir]/obs-studio/basic/profiles which will contain the settings
      data for each profile.
      f9314128
    • J
      UI: Add scene collections · 7d6a12f4
      jp9000 提交于
      Adds scene collections to the menu bar, which allows you to duplicate,
      rename, remove, or add clean new scene collections.
      
      Scene files are now stored in ./obs-studio/basic/scenes directory with
      filesystem-safe names.
      7d6a12f4
    • J
      UI: Add UpdateTitleBar function to basic UI · fabb99c3
      jp9000 提交于
      fabb99c3
    • J
      UI: Add New/Duplicate/Untitled locale text · 5d826a86
      jp9000 提交于
      5d826a86
    • J
      UI: Add functions to create safe file names · a781c5bd
      jp9000 提交于
      Adds functions to generate safe file names from potentially unsafe
      names.  Also a function to ensure that a particular filename isn't
      duplicated.
      a781c5bd
    • J
      obs-ffmpeg: Fix potential integer overflows · d1e9b9d6
      jp9000 提交于
      This particularly affected audio encoding, audio encoding previously
      would count samples and use it to create an encoding timestamp, but
      because I was using a standard integer (which is 32bit by default on
      x86), it would max out at about 0x7FFFFFFF samples, which is about 12
      hours of samples at 48000 sample rate.  After that, it would start going
      into negative territory (overflowing).  By changing it to int64_t, it
      will make it so that audio at 48000 samples per second would only be
      able to overflow after about..  6.09 million years.  In other words,
      this should fix the issue for good.
      d1e9b9d6
    • J
      UI: Add a couple new common services · 6f68d9eb
      jp9000 提交于
      Livecoding.tv (coding), gaminglive.tv (gaming), and beam.pro
      (gaming/music)
      
      I really don't see any problems with adding these particular services to
      the local list while the actual remote ingest lookup code has yet to be
      even started yet (as of this writing).  They seem to be harmless
      services that are dedicated to specific types of content (stated above).
      6f68d9eb
    • J
      win-capture: Add 64bit bounce to func_hook · a6aa2f92
      jp9000 提交于
      When hooking 64bit functions, sometimes the offset between the function
      being hooked and the hook itself can be large enough to where it
      requires a 64bit offset to be used.  However, because a 64bit jump
      requires overwriting so many code instructions in the function, it can
      sometimes overwrite code in to an adjacent function, thereby causing a
      crash.
      
      The 64bit hook bounce (created by R1CH) is designed to prevent using
      very long jumps in the target by creating executable memory within a
      32bit offset of that target, and then writing it with the 64bit long
      jump instruction instead.  Then in the target function, it will jump to
      that memory instead, thus forcing the actual hooked function to use a
      32bit hook instead of a 64bit hook, and using at most 5 bytes for the
      actual hook, preventing any likelihood of it overwriting an adjacent
      function.
      a6aa2f92
    • J
      UI: Use default scaled res. of 1280x720 or equiv. · 650c8faa
      jp9000 提交于
      Originally this value defaulted to 1.5 downscaling, but on very high
      resolution displays this would cause the default to be above 1280x720,
      which is not ideal for streaming/recording due to the CPU usage
      requirements.
      
      Instead, it will now find the closest resolution with a pixel count
      equivalent to or closest below 1280x720, and use that instead.
      650c8faa
    • J
      UI: Allow resize without timers · b5664282
      jp9000 提交于
      This prevents the weird stretching effect that occurs whenever a windows
      is in the process of being resized by the user.
      
      Originally it was intended as an optimization, but even on half-decent
      computers it doesn't really have much benefit.
      b5664282
    • J
      UI: Remove unused default config values · b4fe4ae5
      jp9000 提交于
      b4fe4ae5
    • J
      UI: Move adv. rec. tracks if updating from 0.10.1 · daa4706e
      jp9000 提交于
      daa4706e
    • J
      libobs/util: Add config_remove_value function · 6bf2be40
      jp9000 提交于
      6bf2be40
    • J
      libobs: Do not add audio hotkeys for filters · 526b9e6b
      jp9000 提交于
      526b9e6b
  2. 03 7月, 2015 21 次提交
    • J
      UI: Do not delete via takeItem in ClearListItems · 815b916b
      jp9000 提交于
      Apparently some raw lingering pointers to the item widgets may be
      present inside of the QListView if you delete the item widgets directly,
      and the only way to ensure those pointers are properly cleared is to
      call ->clear() on the list widget instead of deleting each item
      individually.
      
      We were deleting each item individually because we thought that
      ->deleteLater might be also be called on other data within, but after
      some testing, that turned out to not be the case, so it's safe to call
      ->clear() on the list widget.
      
      As a note, deleting item widgets directly is dangerous due to the
      potential for lingering raw internal pointers, and our case is unique
      where we can get away with it; do not delete list item widgets directly
      unless you intend on calling ->clear() or ->takeItem on the specific
      item you do it to after.
      
      Again, the reason why we are deleting list widget items manually is due
      to the fact that Qt will always use ->deleteLater() on them if they are
      not deleted manually, which puts their deletion on the queue.  Only
      problem is they cannot be removed from the queue once added, so
      lingering references to sources will persist until the queue processes
      them, which causes major problems if we need those objects deleted right
      away.
      815b916b
    • J
      UI: Log when output starts/stops · 44afc716
      jp9000 提交于
      44afc716
    • J
      UI: Save project only on new changes · da358da9
      jp9000 提交于
      da358da9
    • J
      UI: Do not save at intervals · 4b93b42d
      jp9000 提交于
      Saving at intervals is a poor way to handle saving issues in general.
      Best to just save when something has been modified instead.
      4b93b42d
    • J
      UI: Add OBSBasic::ClearHotkeys function · c9f85f16
      jp9000 提交于
      Add a function to clear basic window hotkeys to reduces potential code
      duplication
      c9f85f16
    • J
      UI: Make shortcut filter not filter dialog keys · 412fbfce
      jp9000 提交于
      With dialog boxes, the keys Enter and Escape are important for
      accepting/rejecting the dialog.
      412fbfce
    • J
      UI: Clear scene data before loading new scene data · 5fc21edc
      jp9000 提交于
      Clear scene data before loading new scene files or when creating new
      scene data from scratch.
      5fc21edc
    • J
      UI: Save after creating default scene · 1d3251a9
      jp9000 提交于
      When initializing with a default scene, save the data to ensure a file
      is actually present when needed (such as for scene collections which may
      need the file)
      1d3251a9
    • J
      UI: Add ClearSceneData to clean up all obs data · 4330065d
      jp9000 提交于
      Add a central function for clearing all data: scenes, sources, widgets
      such as lists that may contain source references in their sub-items,
      dialogs which may contain source references.  In certain circumstances
      this data must be fully released and manually freed to ensure that there
      are no outstanding references to obs data (such as on shutdown, where
      all data should be properly freed).
      4330065d
    • J
      UI: Manually delete visibility item widgets · 20b4a1c0
      jp9000 提交于
      20b4a1c0
    • J
      UI: Add item widget helper functions · db9e966e
      jp9000 提交于
      These functions are designed to manually delete item widgets within
      other widgets to prevent ->deleteLater from being called on them.  This
      prevents the item widgets from being stuck in the event queue, and
      prevents references to things like sources from being stuck in the event
      queue along with them if they're used in the item widget's class or
      functions.
      db9e966e
    • J
      UI: Remove unused signal from basic main window · e8f30f22
      jp9000 提交于
      e8f30f22
    • J
      UI: Store global audio sources in scenes file only · 3b164774
      jp9000 提交于
      Right now, information about global audio sources is stored in both
      scene files and in the config.  These must be separated; there's no need
      to store them in both when they can just be stored in the scenes file.
      3b164774
    • J
      UI: Use platform.h for snprintf · cb6c90a0
      jp9000 提交于
      This allows snprintf to be used in any file in the UI.
      cb6c90a0
    • J
      UI: Remove redundant directory creation · 8273d2cf
      jp9000 提交于
      8273d2cf
    • J
      UI: Remove whitespace when asking for a name · 8b338b35
      jp9000 提交于
      8b338b35
    • J
      UI: Fix typo in error · 70795300
      jp9000 提交于
      70795300
    • J
      libobs: Check for removals in obs_enum_sources · 4ed1ee70
      jp9000 提交于
      Checks for removals while enumerating, which allows one to be able to
      remove a source in the enumeration.
      4ed1ee70
    • J
      libobs/util: Do not add empty config file values · 5bcaa7b5
      jp9000 提交于
      This allows config file values to defer to their defaults instead of
      being null.
      5bcaa7b5
    • J
      libobs/util: Add ConfigFile::Swap function · 625ecda3
      jp9000 提交于
      Allows swapping the internal data of two ConfigFile objects.
      625ecda3
    • J
      libobs/util: Add os_copyfile function · 09b78b12
      jp9000 提交于
      Adds a function to copy a file.  On unix-based systems, manually copies
      the data with fopen/fread/fwrite/fclose.
      09b78b12