Commit Graph

631 Commits (9b238ef71ea71ab077a5ac3af97c078a0fa06885)

Author SHA1 Message Date
jp9000 233004631f linux-capture: Mark captures as custom drawn
The linux window and monitor captures draw in a custom way, therefore
they must be marked as types of sources that do custom rendering.
2015-03-22 18:38:49 -07:00
Jim 23bb999470 Merge pull request #376 from SkylerLipthay/feat/blackmagic-decklink-plugin
Blackmagic DeckLink plugin
2015-03-21 19:22:04 -07:00
Skyler Lipthay dd739d1e49 decklink: Add Windows DeckLink project
The code specific to Windows: helps convert `BSTR` instances to
`std::string`s; provides a Windows COM-specific implementation of
`CreateDeckLinkDiscoveryInstance`; aliases CFUUIDGetUUIDBytes,
CFUUIDBytes, and IUnknownUUID (the Linux SDK does this, but for some
reason the Windows SDK does not).
2015-03-21 16:43:16 -07:00
Skyler Lipthay b959f56291 decklink: Add Windows DeckLink SDK
Some changes were made to the stock DeckLink SDK: removed all references
to legacy API headers in DeckLinkAPI.idl; removed all instances of
`importlib("stdole2.tlb");`.
2015-03-21 16:43:00 -07:00
Skyler Lipthay 70f8369ae3 decklink: Add Linux DeckLink project
The code specific to Linux helps convert `const char *` instances to
`std::string`s.
2015-03-21 16:42:59 -07:00
Skyler Lipthay c9ff86dd01 decklink: Add Linux DeckLink SDK 2015-03-21 16:42:42 -07:00
Skyler Lipthay 496031e8c8 decklink: Add Mac DeckLink project
The code specific to Mac OS X helps convert `CFString` instances to
`std::string`s.
2015-03-21 16:42:40 -07:00
Skyler Lipthay fd83f5c85f decklink: Add Mac DeckLink SDK 2015-03-21 16:40:15 -07:00
Skyler Lipthay 4225fa8eee decklink: Add Blackmagic DeckLink capture plugin
This is a cross-platform Blackmagic device capture plugin that makes use
of the manufacturer provided DeckLink SDK.
2015-03-21 16:40:05 -07:00
Jim caa4e36704 Merge pull request #402 from Radzaquiel/patch-3
Update hitbox.tv ingest servers list
2015-03-21 09:51:37 -07:00
John Bradley d69f03c6a5 obs-ffmpeg: Use deferred update flag for properties 2015-03-19 16:02:24 -05:00
John Bradley c539c16ecc obs-ffmpeg: Instead of failing with unsupported CS, use default 2015-03-19 14:40:24 -05:00
John Bradley 52aae96f74 obs-ffmpeg: Add alias of CS601 support 2015-03-19 14:40:24 -05:00
John Bradley 17f8e3c58b obs-ffmpeg: Add frame drop controls to the ffmpeg source UI 2015-03-19 14:40:24 -05:00
Radzaquiel 3e1a521acb Update hitbox.tv ingest servers list
Added: US-West (San Francisco)
2015-03-19 11:18:52 +01: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 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
Gol-D-Ace a4b8114cab rtmp-services: Update Twitch Singapore ingest 2015-03-12 15:40:45 +01: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 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 0e944735e0 obs-ffmpeg: Fix error fetching properties from wrong pointer 2015-03-10 12:25:24 -05: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
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
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
Christoph Hohmann 52ff7b9734 image-source: Add a macro for logging info messages 2015-03-05 00:21:35 -08:00
jp9000 c5b8c744ed rtmp-services: Remove hitbox Vienna at request
Apparently it's not meant to be used quite yet.
2015-03-04 23:49:12 -08:00
Jim f0370f556a Merge pull request #395 from fryshorts/v4l2-buffering
linux-v4l2: Replace system timing option
2015-03-04 23:25:12 -08:00
fryshorts cdbf193e2e linux-v4l2: Add buffering option
Add a source property to enable buffering of frames, which is enabled by
default. This replaces the old "Use system timing" option by setting the
unbuffered source flag instead of using different timestamps.
While similar in intentions to the old option, this method should reduce
latency even more.
2015-03-04 21:21:22 +01:00
fryshorts c0f47c7efd linux-v4l2: Remove the system timing option
Remove the system timing property and code-path.
2015-03-04 21:01:18 +01:00
Radzaquiel d40e459e5c Update hitbox.tv ingest servers list
(Updated from Hitbox API)
Added: EU-West (Paris), US-East (New York)
2015-03-03 21:28:29 +01:00
Manuel Kroeber 8a55f3bda7 text-freetype2: Fix bug 0000151
Fix bug 0000151: File loading not properly handled.

Link to bug: https://obsproject.com/mantis/view.php?id=151

A newly selected font is not loaded properly if "read from file" is
active without a valid file.  Old error handling lead to random memory
being displayed.

Closes Pull Request #390

(message edited by Jim)
2015-03-01 23:39:13 -08:00
Skyler Lipthay 7d3eedbcb0 mac-avcapture: Default to unbuffered video capture
By default, video plays back based upon the timestamp for each frame,
and buffers the frames as needed to ensure that they play back at the
expected timing.

However, this can add some minor additional delay to the video, and may
not be ideal for certain devices such as webcams and generally any
device that has minimal latency.  However, because those are the only
type of devices that typically have drivers, there's no real need to
have it on by default.

This adds an option to use buffering, and leaves it off by default.

Closes pull request #384

(message added by jim)
2015-03-01 23:18:56 -08:00
fryshorts 6b95b2ccf7 linux-v4l2: Improve logging of pixel format
Use the macro from the mac capture plugin to convert the fourcc integer
value to a string. This makes the debug statement for the pixel format
slightly more readable for the casual developer.
2015-03-01 18:53:51 +01:00
fryshorts 7905197b7c linux-v4l2: Remove "Leave Unchanged" option
Remove the "Leave Unchanged" option for the input and video format
select.

This option was primarily added for cases in which the
resolution and framerate are set by another program or the capture
device itself and the values are not directly supported by the plugin.
One major usecase here would be capture devices for tv signals which
might be set to a spcific resolution and refresh rate, and might fail
to initialize in case any other combination of those settings is forced.

In case of the input this option did not make much sense, as the first
input is probably the best default option in most cases.

For the video format this default is even bad in some cases. If an
format emulated by libv4l2 is selected for example, this will usually
configure the device to use mjpeg with libv4l2 converting it to some
format obs can use. When obs or the source is then restarted and the
"Leave Unchanged" is enabled the plugin will fail, because it will only
notice that the device is set to mjpeg, without any knowledge about the
possibility of letting libv4l2 handle the conversion.

Using the first available and supported format is not nescessarily the
best choice, but still preferable to some random format that will
cause the plugin to not capture at all. Forcing a choice here will
hopefully also make the plugin behaviour more predicatable for the user.
2015-03-01 18:53:51 +01:00
Radzaquiel b86af28380 linux-v4l2: Fix string for translation
Changed "ImageFormat" for "VideoFormat"
(checked in v4l2-input.c)
2015-02-27 00:52:17 +01:00
fryshorts 1c0df043fa linux-v4l2: Use dv timing property in source
Use the dv timing selected in the source properties to configure the
device instead of resolution/framerate.
2015-02-24 23:32:46 +01:00
fryshorts 99b6a018cc linux-v4l2: Add helper function to set dv timing
Add a helper function to set the dv timing for the input.
2015-02-24 23:32:46 +01:00
fryshorts bcf8400137 linux-v4l2: Show dv timings when supported
Show the dv timing property when the selected input supports it.
2015-02-24 23:32:46 +01:00
fryshorts 5d317920f1 linux-v4l2: Add dv timing property
Add the dv timing property and hide it by default.
2015-02-24 23:32:46 +01:00
fryshorts bf27d4c1cb linux-v4l2: Add function to list dv timings
Add a helper function to enumerate dv timings supported by the
selected input and add them to a property.
2015-02-24 23:32:46 +01:00
fryshorts 0a6cf208f1 linux-v4l2: Add helper function to get dv timings
Add a helper function to get a dv timing by index for the input.
2015-02-24 23:32:46 +01:00
fryshorts f38347acc6 linux-v4l2: Use video standard property in source
Use the video standard selected in the source properties to configure
the device instead of resolution/framerate.
2015-02-23 21:27:08 +01:00
fryshorts 7dc9069c1b linux-v4l2: Add helper function for video standard
Add a helper function to get/set the video standard for the input.
2015-02-23 21:27:08 +01:00