- 27 11月, 2014 7 次提交
-
-
由 jp9000 提交于
-
由 jp9000 提交于
The macro INFINITY apparently will trigger a warning with microsoft's compiler despite being a C standard library macro.
-
由 jp9000 提交于
This adds functions for piping a command line program's stdin or stdout. Note however that this is unidirectional only. This will be especially useful later on when implementing MP4 output, because MP4 output has to be piped to prevent unexpected program termination from corrupting the file.
-
由 Jim 提交于
Add advanced audio controls
-
由 jp9000 提交于
There's a little too much junk in the CONTRIBUTING file. I feel like it's unnecessary to say some of the things that were being said in there. It really needs to be to the point
-
由 fryshorts 提交于
This replaces the code for volume control with a newer version that uses the new fader implementation in order to control the fader/slider position and source volume. The volume label will now indicate the gain in dB instead of percent, mainly because it looks cool and is easy to do. Due to libobs saving the multiplier option for the source instead of the slider/fader positon, existing volume levels will (mostly) stay the same with only the slider beeing at a different position. This is of course within the resolution of the slider (100 steps).
-
由 fryshorts 提交于
This adds a new library of audio control functions mainly for the use in GUIS. For now it includes an implementation of a software fader that can be attached to sources in order to easily control the volume. The fader can translate between fader-position, volume in dB and multiplier with a configurable mapping function. Currently only a cubic mapping (mul = fader_pos ^ 3) is included, but different mappings can easily be added. Due to libobs saving/restoring the source volume from the multiplier, the volume levels for existing source will stay the same, and live changing of the mapping will work without changing the source volume.
-
- 20 11月, 2014 7 次提交
-
-
由 jp9000 提交于
This function greatly simplifies the use of effects by making it so you can call this function in a simple loop. This reduces boilerplate and makes drawing with effects much easier. The gs_effect_loop function will now automatically handle all the functions required to do drawing. --------------------- Before: gs_technique_t *technique = gs_effect_get_technique("technique"); size_t passes = gs_technique_begin(technique); for (size_t pass = 0; pass < passes; pass++) { gs_technique_begin_pass(technique, pass); [draw] gs_technique_end_pass(technique); } gs_technique_end(technique); --------------------- After: while (gs_effect_loop(effect, "technique")) { [draw] }
-
由 jp9000 提交于
If you look at the previous commits, you'll see I had added obs_source_draw before. For custom drawn sources in particular, each time obs_source_draw was called, it would restart the effect and its passes for each draw call, which was not optimal. It should really use the effect functions for that. I'll have to add a function to simplify effect usage. I also realized that including the color matrix parameters in obs_source_draw made the function kind of messy to use; instead, separating the color matrix stuff out to obs_source_draw_set_color_matrix feels a lot more clean. On top of that, having the ability to set the position would be nice to have as well, rather than having to mess with the matrix stuff each time, so I also added that for the sake of convenience. obs_source_draw will draw a texture sprite, optionally of a specific size and/or at a specific position, as well as optionally inverted. The texture used will be set to the 'image' parameter of whatever effect is currently active. obs_source_draw_set_color_matrix will set the color matrix value if the drawing requires color matrices. It will set the 'color_matrix', 'color_range_min', and 'color_range_max' parameters of whatever effect is currently active. Overall, these feel much more clean to use than the previous iteration.
-
由 jp9000 提交于
-
由 Jim 提交于
linux-xshm: Allow capturing from a different X server
-
由 fryshorts 提交于
This adds a check to the screen enumeration in order to handle missing screens by adding them to the list but disabling them.
-
由 fryshorts 提交于
This adds a property to the source properties which lets the user specify the X server to capture from. Since this is probably something thats only useful under certain circumstances it is implemented as an advanced setting which is only shown when the corresponding option for advanced settings is checked.
-
- 19 11月, 2014 5 次提交
-
-
由 fryshorts 提交于
This moves the code to start/stop the capture to respectively named function in order to clean up the update function. This means that the capture is stopped/started whenever the settings are changed. While this increases overhead for some settings, this will also enable future settings that require a full restart of capture process.
-
由 fryshorts 提交于
This removes the entering/leaving of the graphics context from this function and requires the calling code to make sure the context is present.
-
由 fryshorts 提交于
This adds the screen id from the source properties to the source struct and changes the geometry function to use that value instead of requiring the settings object of the source.
-
由 fryshorts 提交于
This adds a macro to automatically prepend the plugin name to debug statements like it is done in other plugins.
-
由 fryshorts 提交于
This adds documentation to the source struct and moves one bool to the end to avoid a hole due to alignment.
-
- 18 11月, 2014 3 次提交
-
-
由 Lexsus 提交于
On windows, carriage return characters are used along with line feed characters. When the carriage return is used, it's rendered as a space. This removes carriage returns from strings before rendering them via freetype.
-
由 Lexsus 提交于
Allows a blank stream key to be used for RTMP streams.
-
由 Jim 提交于
libobs: Replace fmaxf with inline comparison.
-
- 17 11月, 2014 7 次提交
-
-
由 jp9000 提交于
-
由 jp9000 提交于
Doing this in the expression will cause it to execute the function every time the expression is evaluated, which is needless cycles wasted. Instead, call wcslen before the loops begin.
-
由 jp9000 提交于
If FFmpeg's experimental aac encoder is used, this changes the cutoff frequency to better values in order to try to help make up for the inherent lack of encoder quality a bit. If FFmpeg is compiled to use another encoder by default, these settings will not be applied.
-
由 jp9000 提交于
This allows the 0x* format of hexadecimal integers to be used as config integers.
-
由 jp9000 提交于
This allows opening ini config data from a string. Before, it was only possible to load config from a file.
-
由 jp9000 提交于
This function simplifies drawing textures for sources in order to help reduce boilerplate code. If a source is a custom drawn source, it will automatically set up the effect to draw the sprite. If it's not a custom drawn source, it will simply draw the sprite as per normal. If the source uses a specific color matrix, it will also handle that as well.
-
由 fryshorts 提交于
This replaces the call to fmaxf with the equivalent inline comparison which is a bit faster (at least on linux).
-
- 16 11月, 2014 1 次提交
-
-
由 Jim 提交于
Fix creating textures from image data with flipping
-
- 15 11月, 2014 1 次提交
-
-
由 Christoph Hohmann 提交于
When the image data is copied into a texture with flipping set to true each row has to be copied into the (height - row - 1)th row instead of the row with the same number. Otherwise it will just create an unflipped copy.
-
- 14 11月, 2014 2 次提交
-
-
由 Jim 提交于
Fixed 2 minor spelling errors.
-
由 Eric Bataille 提交于
-
- 10 11月, 2014 1 次提交
-
-
由 Zachary Lund 提交于
XComposite, which is currently our only capture method for windows, doesn't handle X border width. This works in a lot of cases but anytime there's a border, a bug occurs where the lower right is clipped. This patch has two goals: 1) To position and size the capture texture correctly in accordance to the border. 2) Adds a configuration option to allow people to toggle it (which in most cases will simply do nothing) with a default of not including it.
-
- 04 11月, 2014 2 次提交
-
-
由 jp9000 提交于
-
由 jp9000 提交于
Apparently the audio isn't guaranteed to start up past the first video frame, so it would trigger that assert (which I'm glad I put in). I didn't originally have this happen when I was testing because my audio buffering was not at the default value and didn't trigger it to occur. A blunder on my part, and once again a fine example of how you should never make assumptions about possible code path.
-
- 03 11月, 2014 1 次提交
-
-
由 jp9000 提交于
-
- 01 11月, 2014 3 次提交
-
-
由 jp9000 提交于
Somehow, there were fonts with empty face names. Regardless, it's always important to check your pointers. Invalid pointers spell doom.
-
由 Palana 提交于
Some applications defer loading OpenGL until after they are visible as running applications, which causes SyphonInject to not install a server on the first try (e.g. Minecraft does this)
-
由 Palana 提交于
-