GitHub PushEvent at 2014-03-11 18:49:26
Repository: obs-studio
Actor: chhe
Payload: {"shas":[["02a07ea0a0ba42be18c2b4701cbdb1f24f82fe96","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Add preliminary streaming code for testing\n\n - Add some temporary streaming code using FFmpeg.  FFmpeg itself is not\n   very ideal for streaming; lack of direct control of the sockets and\n   no framedrop handling means that FFmpeg is definitely not something\n   you want to use without wrapper code.  I'd prefer writing my own\n   network framework in this particular case just because you give away\n   so much control of the network interface.  Wasted an entire day\n   trying to go through FFmpeg issues.\n\n   There's just no way FFmpeg should be used for real streaming (at\n   least without being patched or submitting some sort of patch, but I'm\n   sort of feeling \"meh\" on that idea)\n\n   I had to end up writing multiple threads just to handle both\n   connecting and writing, because av_interleaved_write_frame blocks\n   every call, stalling the main encoder thread, and thus also stalling\n   draw signals.\n\n - Add some temporary user interface for streaming settings.  This is\n   just temporary for the time being.  It's in the outputs section of\n   the basic-mode settings\n\n - Make it so that dynamic arrays do not free all their data when the\n   size just happens to be reduced to 0.  This prevents constant\n   reallocation when an array keeps going from 1 item to 0 items.  Also,\n   it was bad to become dependent upon that functionality.  You must now\n   always explicitly call \"free\" on it to ensure the data is free, and\n   that's how it should be.  Implicit functionality can lead to\n   confusion and maintainability issues.","jp9000",true],["35e7a2a9fe00bca4c986b09eef36f5670b81b83e","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Fix a few warnings","jp9000",true],["5288467aeb6b022cf6ce16386a3c34df2425869d","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Ensure names are valid\n\nEnsure that a source has a valid name.  Duplicates aren't a big deal\ninternally, but sources without a name are probably something that\nshould be avoided.  Made is so that if a source is programmatically\ncreated without a name, it's assigned an index based name.\n\nIn the main basic-mode window, made it check to make sure the name was\nvalid as well.","jp9000",true],["03fc5b92b342c0030f0a63c1711d656befe95700","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Ensure URL and key are valid if trying to stream","jp9000",true],["806837873a74eea2146aae8b8fa8d1d22f11ca8d","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","CoreAudio: fix properties for input/output\n\nAlso, check that audio devices are available before setting defaults","jp9000",true],["9a07f9b875c6e912076cb01115707304dcd7fc77","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Fix minor warning (redundant code)","jp9000",true],["faabeff74395fa4f9b109e99137c51f74ef44cd3","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Allow file names to be used instead of URLs","jp9000",true],["585fd8f969b156247747f9c4249ad835a9e030a5","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Fix audio streaming and mac semaphores\n\n...The reason why audio didn't work was because I overwrote the bitrate\nvalues.\n\nAs for semaphores, mac doesn't support unnamed semaphores without using\nmach semaphores.  So, I just implemented a semaphore wrapper for each\nOS.","jp9000",true],["c023ef69ea6eaefd9897a066a8b56e1d0eeba8e6","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Fix non-windows event code\n\nAnd remember to compile on non-windows systems before committing","jp9000",true],["5e1cac68f491986ec16b461068f16aa04cad3235","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Fix semaphore mac code and mac plugin\n\nDidn't convert the event names and didn't have the right mac includes","jp9000",true],["3aedfdfb73a3e4f67509eb89192cfc10521460ba","afb1f552943ed2e4226ea95f31452bbd1d67cfba@gmail.com","Fix wrong linux function\n\nUsed the mac function instead by accident","jp9000",true],["12e1855ebc0bc1d62b5ed4488698d5198dbaa239","ba4d83f23f8da39aaa3d2e59f01223cb7f2cd76f@in-verted.de","added linux test module with first implementation of a screengrabber using the xshm extension for x11","fryshorts",true],["820de55ae2135e8d94a8aaa5bbee3cef6ed8305c","ba4d83f23f8da39aaa3d2e59f01223cb7f2cd76f@in-verted.de","Added initial Mouse pointer lib\n\nAdded library to get the mouse pointer with the XFixes\nextension and draw it via a sprite.","fryshorts",true],["c00d9e3b4e08640d23f18b9b2e82f4deb10719d0","ba4d83f23f8da39aaa3d2e59f01223cb7f2cd76f@in-verted.de","Moved screen grabber code to _tick function\n\nMoved the screen grabbing and texture generation to the\n_tick function in order to keep _render fast.\nMigrated xshm video source to the new plugin api.","fryshorts",true],["42bc5eddbb36371c4bf7b531d3fdc4304f39a690","ba4d83f23f8da39aaa3d2e59f01223cb7f2cd76f@in-verted.de","added initial pulse audio input plugin\n\n- first try at implementing a pulse audio input plugin,\n  it is currently completely untested.\n\n- added license headers to source files","fryshorts",true],["e67d7607e44cb6206c94a407740b41fd3e50a047","4e855ba0589bac4dcccc80d70616bd0e87f1b3c1@ziemas.se","In the API update the diffuse effect got renamed to image.","Ziemas",true],["c558a7b6fa3a38dd6c72548df7225fee9e24ce05","ba4d83f23f8da39aaa3d2e59f01223cb7f2cd76f@in-verted.de","Removed unnecessary buffer\n\nInstead of copying the data from pulse to a local buffer and\nthen push it to obs, the pointer from pulse is now used and\npa_stream_drop() called afterwards.","fryshorts",true],["09a75c53940cf0d626b9ba9e9d2b71491e9f696f","ba4d83f23f8da39aaa3d2e59f01223cb7f2cd76f@in-verted.de","fixed warnings","fryshorts",true],["9095ad0a001ee2303a1fa71d8e19febc8956a193","ba4d83f23f8da39aaa3d2e59f01223cb7f2cd76f@in-verted.de","reformatted source to kernel style","fryshorts",true],["47a6f54910ffbb914a2aadf9daa9f8df3d5dcfb0","ba4d83f23f8da39aaa3d2e59f01223cb7f2cd76f@in-verted.de","use pa_mainloop_iterate instead of own implementation\n\npulse audio provides it's own convenience function to\niterate the mainloop, no need to use a custom one.\npulseaudio provides timing information for the stream, we use\nthat instead of system time.","fryshorts",true]],"size":30,"ref":"refs/heads/master","head":"2d6a7c89ca6918addc2d71407c43ddedc9bb2b92"}