Commit Graph

2460 Commits (b7421aafde796bcdc5ebfd654e580c997ccc9419)

Author SHA1 Message Date
Radzaquiel 3e1a521acb Update hitbox.tv ingest servers list
Added: US-West (San Francisco)
2015-03-19 11:18:52 +01:00
Jim d3c4c66ca7 Merge pull request #401 from Radzaquiel/patch-1
Update hitbox.tv ingest servers list
2015-03-18 13:39:38 -07:00
Radzaquiel 57c5c5ee52 Update hitbox.tv ingest servers list
Added: EU-South
2015-03-18 21:32:38 +01:00
Jim b4bca874b4 Merge pull request #400 from Gol-D-Ace/GoodGame.ru-ingests
rtmp-services: Update GoodGame.ru ingests
2015-03-16 15:26:48 -07:00
Gol-D-Ace 3421112ac9 rtmp-services: Update GoodGame.ru ingests 2015-03-16 23:14:43 +01:00
jp9000 db17a72ff6 UI: Fix typo in dark theme causing wrong borders
This fixes an issue where the borders for certain types of windows would
not match the intended border style/color.  It was supposed to be 1
through 6 for frameShape, but I ended up putting 5 twice.
2015-03-13 07:20:04 -07:00
jp9000 48d47e9101 UI: Fix dark theme border consistency issue
Fixes an issue where the border color/style would not be consistent
across different operating systems
2015-03-13 01:41:57 -07:00
jp9000 0f31880c3c libobs: Fix bug (source resampler not resetting)
If the audio data had the same format/samplerate as the obs audio
subsystem, it would fail to simply destroy the resampler and set it to
NULL, and then any audio data going through would use the resampler that
was being used before that, causing audio to become garbage.

This bug only started appearing when I recently changed the libobs
internal audio subsystem format to non-interleaved floating point, which
is a common format, and thus caused this bug to actually occur more
often.
2015-03-13 01:03:01 -07:00
jp9000 4fdd8fb570 libobs: Don't ignore starting audio if async
I when a source has both async audio/video capability, it would ignore
audio until the video has started.  There's really no need to do this,
when the video starts it'll just fix up the timing automatically.

This should fix the case where things like the media source would not be
able to play audio-only files.
2015-03-12 22:27:36 -07:00
jp9000 9832a760b8 (API Change) Always use planar float audio output
Core API functions changed:
-----------------------------
EXPORT bool obs_reset_audio(struct audio_output_info *aoi);
EXPORT bool obs_get_audio_info(struct audio_output_info *aoi);

To:
-----------------------------
EXPORT bool obs_reset_audio(const struct obs_audio_info *oai);
EXPORT bool obs_get_audio_info(struct obs_audio_info *oai);

Core structure added:
-----------------------------
struct obs_audio_info {
	uint32_t            samples_per_sec;
	enum speaker_layout speakers;
	uint64_t            buffer_ms;
};

Non-interleaved (planar) floating point output is standard with audio
filtering, so to prevent audio filters from having to worry about
different audio format implementations and for the sake consistency
between user interfaces, make it so that audio is always set to
non-interleaved floating point output.
2015-03-12 22:22:02 -07:00
jp9000 9b44b368b7 Merge pull request #378 from Socapex/darkTheme
UI: Implement theme selection option
 UI: Change "Language:" to "Language" (consistency)
 UI: Make "output mode" label disabled if active
 UI: Give "advanced" section icon a white border
 UI: Add dark theme

(Manually merged) Closes Pull Request #378
2015-03-12 09:36:34 -07:00
Socapex 6a16778bc9 UI: Implement theme selection option
OBS will offer the user a list of themes which are .qss files inside
data/obs-studio/themes.  If no theme is found in the configuration, it
loads the default theme for the system.
2015-03-12 09:27:18 -07:00
jp9000 5262fa31c0 UI: Change "Language:" to "Language" (consistency) 2015-03-12 09:27:18 -07:00
jp9000 7bd85233cc UI: Make "output mode" label disabled if active
I had previous made the output mode list box become disabled, but
neglected to do it for the label as well.
2015-03-12 09:27:17 -07:00
jp9000 21b8e6462b UI: Give "advanced" section icon a white border
Instead of trying to replace this icon, I feel like just giving it a
white border is sufficient to make it usable in both light and dark
themes.

The only other option is to add icon changing code for themes for this
particular type of widget, and I felt it was best to not go down that
route due to the complexity involved.
2015-03-12 09:27:16 -07:00
Socapex a62f079541 UI: Add dark theme
Links up certain controls via a "themeID" property so the icons can by
dynamically changed via the qss file if needed.
2015-03-12 09:27:16 -07:00
Jim ff7ab26a41 Merge pull request #398 from Gol-D-Ace/twitch-ingests
rtmp-services: Update Twitch Singapore ingest
2015-03-12 07:50:54 -07:00
Gol-D-Ace a4b8114cab rtmp-services: Update Twitch Singapore ingest 2015-03-12 15:40:45 +01:00
jp9000 1f57828e83 Update CopyMSVCBins.cmake to include more files
Now includes avdevice, avfilter, postproc, and freetype if compiled as a
DLL
2015-03-11 19:26:34 -07:00
John Bradley f23d958122 obs-ffmpeg: Cache picture buffer in the same way as sws context 2015-03-10 14:37:28 -05:00
John Bradley baea0f583a obs-ffmpeg: Remove extra curly braces 2015-03-10 14:34:37 -05:00
John Bradley a73c15ae16 obs-ffmpeg: Fix bug where update_sws_context result not checked 2015-03-10 14:33:21 -05:00
John Bradley 361522198e deps-libff: Workaround to PNG multithreaded bug in ffmpeg
FFMpeg has an issue where png decoding will not correctly
begin until its optimal-thread-detection finishes in
multi-threaded mode. This unfortunately is after decoding
has begun.
2015-03-10 12:55:53 -05:00
John Bradley e13bb8f479 obs-ffmpeg: Cache swscale context during frame callback
Some codecs don't report the correct dimensions until the first
frame is rendered.
2015-03-10 12:53:17 -05:00
John Bradley b3fddc9f53 obs-ffmpeg: Support interrupt callbacks for both av input styles 2015-03-10 12:47:08 -05:00
John Bradley 0e944735e0 obs-ffmpeg: Fix error fetching properties from wrong pointer 2015-03-10 12:25:24 -05:00
Palana 89b7230652 libobs: Fix async plane offset calculation
Frames allocated via video_frame_init from media-io/video-frame.c have
their planes aligned which the original offset calculation didn't take
into account, resulting in some planes being drawn incorrectly.

Example media file to reproduce via the ffmpeg (media) source:
http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi
2015-03-10 18:20:49 +01:00
Jim eb7d631694 Merge pull request #394 from kc5nra/ffmpeg-source-plugin
Ffmpeg source plugin
2015-03-09 19:41:59 -07:00
John Bradley 2fc6c4d725 obs-ffmpeg: Add FFMpeg input source 2015-03-09 21:22:32 -05:00
John Bradley 8a32345071 obs-ffmpeg: Add FFmpeg format -> obs format func 2015-03-09 21:22:32 -05:00
kc5nra 5d6a4e5172 deps-libff: Add libff library to deps
This library wraps the ffmpeg library and adds some utility
functions and types.
2015-03-09 21:22:32 -05:00
jp9000 b03eae57c6 (API Change) Fix "apply service settings" functions
API changed from:
------------------------
EXPORT void obs_service_apply_encoder_settings(obs_service_t *service,
		obs_encoder_t *video_encoder,
		obs_encoder_t *audio_encoder);

void obs_service_info::apply_encoder_settings(void *data
			obs_encoder_t *video_encoder,
			obs_encoder_t *audio_encoder);

To:
------------------------
EXPORT void obs_service_apply_encoder_settings(obs_service_t *service,
		obs_data_t *video_encoder_settings,
		obs_data_t *audio_encoder_settings);

void obs_service_info::apply_encoder_settings(void *data
			obs_data_t *video_encoder_settings,
			obs_data_t *audio_encoder_settings);

These changes make it so that instead of an encoder potentially being
updated more than once with different settings, that these functions
will be called for the specific settings being used, and the settings
will be updated according to what's required by the service.

This fixes that design flaw and ensures that there's no case where
obs_encoder_update is called where the settings might not have
service-specific settings applied.
2015-03-07 16:32:00 -08:00
jp9000 56f4dd5359 obs-outputs: Fix bug (headers not always sent)
If a disconnection occurs, the sent_headers would still be set to true,
and when a reconnect occurs, it would not send the headers again.
2015-03-07 10:11:18 -08:00
jp9000 5faa5157c5 UI: Change default retry delay to ten seconds
Two seconds is a bit low apparently, and some services don't seem to
like it.
2015-03-07 10:10:41 -08:00
jp9000 55bba03c85 libobs: Save/load filters on sources to save data 2015-03-06 09:14:05 -08:00
jp9000 50a36f45cd libobs: Add obs_source_get_filter_by_name function 2015-03-06 09:13:56 -08:00
jp9000 9f82085243 libobs: Add obs_source_enum_filters function
Enumerates filters that are currently present on a source.
2015-03-06 09:12:00 -08:00
jp9000 0b5a5c16a9 libobs: Fix bug rendering async video with filters
This code was originally meant to skip some checks as an optimization,
but it did not account for async video sources and would call
obs_source_default_render (which is only for synchronous video sources),
this fixes the issue by just calling obs_source_video_render.
2015-03-06 09:09:57 -08:00
jp9000 502f4005f1 libobs: Fix race condition when adding a filter
The source would sometimes be rendered before the code to add it to the
filter chain was executed, therefore it would cause a crash.
2015-03-06 09:09:57 -08:00
jp9000 b1ba8561ff libobs: Keep references to filters when on sources
When a filter is added to a source, it does not currently keep a
reference when it's associated that that source, this fixes that
problem.
2015-03-06 09:09:56 -08:00
jp9000 3510e69121 libobs: Account for filters in source dimensions
The obs_source_get_width and obs_source_get_height functions need to
account for filters that may change their width/height such as a crop
filter or something similar.

As a side effect of this commit, because these functions need to lock
the filter mutex, these functions can no longer be used with a
const-qualified obs_source_t pointer.
2015-03-06 09:09:56 -08:00
jp9000 46341725c2 libobs: Remove inline from function
This function is somewhat big and is a function called conditionally,
therefore having it be inline is somewhat of a waste if it's not always
being called.
2015-03-06 09:09:56 -08:00
jp9000 818a57c33f libobs: Fix graphics memory leak
Graphics data has to be freed inside of an active graphics context,
otherwise the resources will not be freed; in the future, we should
probably make sure that the graphics subsystem automatically
asserts/warns about this scenario.
2015-03-06 09:09:56 -08:00
jp9000 8e5a0970b1 libobs: Fix releasing filters on source destroy
I was iterating through the obs_source::filters array to remove filters,
but every time I removed a filter, it would remove itself from the
array, therefore it would end up skipping items in the array, therefore
leaving filters unreleased.  This just removes the first filter until
all filters have been removed.
2015-03-06 09:09:56 -08:00
jp9000 95a5e8009f libobs: Add filter add/remove signals
Adds "filter_remove" and "filter_add" signals that signal when a filter
is added or removed
2015-03-06 09:09:55 -08:00
Socapex baa1890ed6 UI: Save position and size of main window
Resolves bug tracker issue #0000143

Closes Pull Request #396
2015-03-06 08:54:31 -08:00
Socapex e270192a61 libobs: Add function to set scene item position
Allows setting a specific position for scene items rather than just
up/down/top/bottom
2015-03-05 02:33:21 -08:00
jp9000 f4704cf4a8 UI: Use 'reorder' signal for scene item reordering
The old signals for for reordering have been removed; the new signal to
use is the 'reorder' signal, which means that the list needs to be
refreshed.
2015-03-05 02:28:17 -08:00
Socapex 577d0b2129 libobs: Replace item_move_* signals
These signals introduce unnecessary complexity.  Instead of emitting a
signal for a specific move direction, just signal that the scene has
been reordered, that way the target just refreshes the list.
2015-03-05 02:28:17 -08:00
Christoph Hohmann c6008316e2 image-source: Add option (unload when not showing)
If this option is on, the image will unload when the image isn't
displayed anywhere, and then reload it when it's displayed again to
reduce the amount of memory images take up on VRAM at any given time.
If this option is off, then it's always loaded in VRAM regardless of
whether it's displayed or not.

Closes Pull Request #380

(edited by Jim)
2015-03-05 00:21:36 -08:00