775 Commits

Author SHA1 Message Date
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
fryshorts
a9df1d921a linux-v4l2: Use input caps for properties
Use the capabilities for the selected input to decide which properties
are enumerated and displayed.
2015-02-23 21:27:08 +01:00
fryshorts
bab2aa24d5 linux-v4l2: Add video standard property
Add the video standard property and hide it by default.
2015-02-23 20:34:44 +01:00
fryshorts
cc57222aa9 linux-v4l2: Add function to enum video standards
Add a helper function to enumerate video standards supported by the
selected input and add them to a property.
2015-02-23 20:34:44 +01:00
fryshorts
96b994afb2 linux-v4l2: Add helper function to get input caps
Add a helper function to get the capabilities of a specific or the
currently selected input of the device.
2015-02-23 20:34:44 +01:00
fryshorts
ff8ac210fb linux-v4l2: Remove camera constraint for inputs
Remove the constraint for device inputs to be of the type "CAMERA".
This was added under the false assumption that inputs of the type
"TUNER" are only used for control purposes.
2015-02-23 20:34:44 +01:00
jp9000
3c8a3d7866 mac-capture: Add update callbacks for coreaudio
Somehow managed to forget to add this function at an earlier point.
Allows the audio device to be changed via a simple update.
2015-02-20 21:53:00 -08:00