Commit Graph

1246 Commits (082e1bff02212d352f0e25839688f9cec3d4cb88)

Author SHA1 Message Date
fryshorts 9dc2cd7d7e Fixed a small Memory Leak 2014-04-26 01:34:35 +02:00
jp9000 dc6a17be2e Properties VIew: Fix a more form layout issues 2014-04-24 21:28:56 -07:00
jp9000 fbbf274c51 Adjust the way properties view UI displays
It didn't really look very nice in most cases and the controls were
always compacted, doing this makes it look a bit better.

Also change it so the properties window shows the properties on the
bottom below the source rather than to the right, seeing as in most
cases the source has a greater width than height, and it feels just a
little bit better to look at (thought that's just my opinion).

Controls still stretch really far sometimes though, I wonder what should
be done about that to be honest.  Maybe prevent it from scrolling to the
right?
2014-04-24 21:12:23 -07:00
jp9000 89e02ca73c obs-outputs: Log connections/disconnections 2014-04-24 21:11:46 -07:00
jp9000 633383bdaf libobs/media-io/video-matrices.c: Fix VC warnings 2014-04-24 21:10:39 -07:00
jp9000 d9d0d87431 libobs-opengl: Fix some code formatting issues 2014-04-24 21:10:07 -07:00
Jim 2cc03e0dc7 Merge pull request #70 from fryshorts/pulse-input
Added a wrapping library for pulseaudio
2014-04-24 15:28:33 -07:00
fryshorts 1ee4496dae Added a wrapping library for pulseaudio
The wrapping library uses a global mainloop and context which
allows operations to share the connection. The global mainloop
is created and destroyed based on internal reference counting.

The capture code won't spawn a new thread for each input anymore
but instead just create the recording stream and rely on the
threaded mainloop to execute the read callback when data is available.
2014-04-24 23:51:13 +02:00
Palana 07ab8271b6 Remove setsockopt for SIGPIPE; disable SIGPIPE via signal() on non-WIN32 2014-04-24 23:50:40 +02:00
Palana 138bf4cc1e Disable SIGPIPE for RTMP socket in librtmp 2014-04-24 23:28:12 +02:00
Palana 52b9f5fe52 Fix defaults for DrawMatrix 2014-04-24 22:33:02 +02:00
Palana 12cc06b560 Add GPU based frame decompression for async video sources 2014-04-24 22:03:32 +02:00
Palana b0becea1a0 Add Packed422 decompression shader 2014-04-24 21:45:55 +02:00
Palana 065379bffa Add limited range rendering for rendering YUV non-full range sources 2014-04-24 21:45:54 +02:00
Palana 9f43e6c257 Add yuv_to_rgb matrices and video_format_get_parameters utility 2014-04-24 16:47:06 +02:00
Palana b77b9feb61 Add helper to convert from FOURCC to VIDEO_FORMAT 2014-04-24 16:46:54 +02:00
jp9000 8830c4102f obs-studio UI: Implement stream settings UI
- Updated the services API so that it links up with an output and
   the output gets data from that service rather than via settings.
   This allows the service context to have control over how an output is
   used, and makes it so that the URL/key/etc isn't necessarily some
   static setting.

   Also, if the service is attached to an output, it will stick around
   until the output is destroyed.

 - The settings interface has been updated so that it can allow the
   usage of service plugins.  What this means is that now you can create
   a service plugin that can control aspects of the stream, and it
   allows each service to create their own user interface if they create
   a service plugin module.

 - Testing out saving of current service information.  Saves/loads from
   JSON in to obs_data_t, seems to be working quite nicely, and the
   service object information is saved/preserved on exit, and loaded
   again on startup.

 - I agonized over the settings user interface for days, and eventually
   I just decided that the only way that users weren't going to be
   fumbling over options was to split up the settings in to simple/basic
   output, pre-configured, and then advanced for advanced use (such as
   multiple outputs or services, which I'll implement later).

   This was particularly painful to really design right, I wanted more
   features and wanted to include everything in one interface but
   ultimately just realized from experience that users are just not
   technically knowledgable about it and will end up fumbling with the
   settings rather than getting things done.

   Basically, what this means is that casual users only have to enter in
   about 3 things to configure their stream:  Stream key, audio bitrate,
   and video bitrate.  I am really happy with this interface for those
   types of users, but it definitely won't be sufficient for advanced
   usage or for custom outputs, so that stuff will have to be separated.

 - Improved the JSON usage for the 'common streaming services' context,
   I realized that JSON arrays are there to ensure sorting, while
   forgetting that general items are optimized for hashing.  So
   basically I'm just using arrays now to sort items in it.
2014-04-24 02:19:03 -07:00
jp9000 3cbc711f02 Add obs_data JSON loading/saving functions 2014-04-24 01:45:56 -07:00
jp9000 21db94656e Fix an issue with properties view
If a control changed the properties layout, it would lose focus on the
control.  Also, fiddled with the sizing policy a bit, because it wasn't
expanding when I used it in other windows.
2014-04-24 01:43:54 -07:00
jp9000 9edde0b892 Fix draw callback for main/properties views
Drawing position wasn't being calculated correctly, viewport/ortho
should have been used instead.  It would cause items to render out of
position on the main viewport (though not on the actual output)
2014-04-22 11:24:05 -07:00
Jim 6064afbe9f Merge pull request #69 from lioncash/misc
[OGL] Fix a possible null pointer dereference
2014-04-21 20:13:42 -07:00
Lioncash 96031f2392 Fix a possible null pointer dereference 2014-04-21 21:28:40 -04:00
Jim 98478b68bc Merge pull request #68 from BtbN/fixes
Some bundled dependency cmake related fixes
2014-04-20 08:55:41 -07:00
BtbN b586240fa0 Stop forcing parameters on jansson. Modify their CMakeLists directly instead 2014-04-20 17:51:06 +02:00
BtbN afd8b63687 Fix w32-pthreads build and string handling 2014-04-20 17:51:05 +02:00
jp9000 2faef6f098 Fix jansson_config.h issue 2014-04-19 21:32:02 -07:00
jp9000 903287a3df Add 'SHARED' to add_library in w32-pthreads cmake 2014-04-19 21:08:38 -07:00
jp9000 43057038fc Add 'common' and 'custom' RTMP services
This plugin is just a generic service plugin for basic RTMP streaming
service stuff.

This just has a 'common' service that has a list of common/simple
streaming services that don't have their own custom service modules, and
then a 'custom' service that allows you to enter in the stream URL and
key manually, without a service/server list.

Also, copy the jansson VS projects file (don't modify the old one) so
that it's located in the vs/2013 directory, so that other libraries can
properly link with it without having to enter in extra information just
to include jansson
2014-04-19 20:54:18 -07:00
jp9000 506daa17d9 Changed the windows test app a bit 2014-04-19 20:50:59 -07:00
jp9000 4a6d19f206 libobs: Add services API, reduce repeated code
Add API for streaming services.  The services API simplifies the
creation of custom service features and user interface.

Custom streaming services later on will be able to do things such as:

 - Be able to use service-specific APIs via modules, allowing a more
   direct means of communicating with the service and requesting or
   setting service-specific information

 - Get URL/stream key via other means of authentication such as OAuth,
   or be able to build custom URLs for services that require that sort
   of thing.

 - Query information (such as viewer count, chat, follower
   notifications, and other information)

 - Set channel information (such as current game, current channel title,
   activating commercials)

Also, I reduce some repeated code that was used for all libobs objects.
This includes the name of the object, the private data, settings, as
well as the signal and procedure handlers.

I also switched to using linked lists for the global object lists,
rather than using an array of pointers (you could say it was..
pointless.)  ..Anyway, the linked list info is also stored in the shared
context data structure.
2014-04-19 20:38:53 -07:00
jp9000 8225a0697a util/darray.h: Fix astoundingly silly assert 2014-04-19 20:35:03 -07:00
jp9000 92812ba313 Make w32-pthreads and jansson shared libraries 2014-04-19 20:33:45 -07:00
jp9000 7a60694159 obs-properties: Add a few features
Just wanted the ability to be able to add private data to the properties
data.  Makes it a little easier to manage data if you get updates from
controls.
2014-04-19 20:29:11 -07:00
jp9000 79b88c4cbb Merge branch 'master' of https://github.com/jp9000/obs-studio 2014-04-19 06:34:13 -07:00
jp9000 c78fe3e306 obs-video.c: Fix minor bug
The pointer here is confusing, so I'm just going to remove it and have
it return the value instead.
2014-04-19 06:33:11 -07:00
Palana 4bb4b859bf Initialize returned pointer to always trigger NULL checks in callers
Also avoid allocation roundtrip if the file is empty after the BOM
2014-04-19 07:37:38 +02:00
Palana d19ba7f624 Update current samplers list on shader load
Ideally this should populate the list with matching OBS samplerstate_ts
like the GL code, but unfortunately there is no mapping for that yet
2014-04-19 05:25:30 +02:00
Palana 12f0877ebc Remove destroyed sampler states from the current samplers list 2014-04-19 05:25:21 +02:00
Palana d56432304e Fix crash when closing windows via the X title bar button
On OSX clicking the X title bar button immediately destroys "all" native
windows (after sending a close event) which causes
[NSSurface _disposeSurface] to crash if invoked while GL is using
the surface
2014-04-17 17:20:00 +02:00
Palana 9894bb4357 Resize preview when OBS windows are moved between monitors
This should fix the previews in most cases when moving between monitors
with differing pixel ratios
2014-04-16 22:39:32 +02:00
Palana b0237fd581 Use high resolution GL surface when available 2014-04-16 22:39:20 +02:00
Palana f447a44f9c Ensure sizes passed to OBS are actual pixel sizes
This should fix GS rendering on surfaces on HiDPI displays; moving
windows between displays with differing pixel ratios currently requires
a manual resize
2014-04-16 22:39:05 +02:00
Jim 2fc810fd09 Merge pull request #65 from BtbN/glad
Move from glLoadGen to GLAD
2014-04-16 12:51:32 -07:00
Palana 8e3d2ebbdd Allow hiding the cursor for Display Capture 2014-04-16 17:23:08 +02:00
Palana be55c06308 Track properties window lifetime via QPointer
Previously the properties window would sometimes not receive
a closeEvent, leaving a dangling pointer in OBSBasicMain (and resulting
in a crash when trying to open a new properties window or closing
the application)
2014-04-16 17:22:06 +02:00
Palana 785d81ffe2 Fix #66 Display Capture for HiDPI displays
kCGDisplayStreamSourceRect takes points rather than pixels
2014-04-16 17:21:57 +02:00
Palana b5276ea18f Add Settings entry to File menu
This automagically creates a (localized?) Preferences entry on OSX as well
2014-04-16 17:21:00 +02:00
jp9000 a712e631b4 Add GLAD project and add to VS solution 2014-04-15 22:19:40 +02:00
BtbN e50201cad1 Move from glLoadGen to GLAD 2014-04-15 22:19:40 +02:00
BtbN 334792a62c Add glad opengl loader 2014-04-15 22:19:40 +02:00