Commit Graph

107 Commits

Author SHA1 Message Date
brunoherbelin
56dfbc737d Deep redesign of frame grabbers to prevent multiple frame captures
(slow) and optimize distribution of gabbed frames to multiple recording
and streaming pipelines (e.g. record H264 *and* share stream on the
network). New implementation of Loopback source for LINUX using
v4l2loopback (experimental).
2020-11-09 23:56:41 +01:00
brunoherbelin
34580ab5ea Fixup OSX system session file loading request 2020-11-03 17:56:18 +01:00
brunoherbelin
88d4e3d9d5 Added support for filename argument when running vimix (open session) 2020-11-01 23:59:24 +01:00
brunoherbelin
8ef79a6dbd Added frame buffer information display in session preview 2020-10-31 19:21:05 +01:00
brunoherbelin
01410a59cf Improved connection robustness and diconnection/connection behaviors
(added connection rejection to streamer).
2020-10-25 22:01:04 +01:00
brunoherbelin
7246dfa08e Work-in progress: connection manager now used in Streamer and
NetworkSource to identify possible connections, and exchange streaming
configuration.
2020-10-24 23:53:11 +02:00
brunoherbelin
43f444f07b Creation of the Connection Manager : this new mechanism continuously
checks for the presence of vimix programs in the network neibourhood.
The list of connections can then be used for indentifying streaming
requests and offers.
2020-10-23 01:02:28 +02:00
brunoherbelin
27239b7513 working on streaming and clients 2020-10-20 00:28:44 +02:00
brunoherbelin
3a34da9322 Renaming Recorder to FrameGrabber 2020-10-14 21:04:22 +02:00
brunoherbelin
b3ee400b1a Hack to prevent re-openning automatically a session file in case vimix
was not properly closed (to avoid crash at start that prevent vimix from
restarting after loading a faulty session file).
2020-10-13 23:42:33 +02:00
brunoherbelin
c674fa0897 Implementation of Copy, Cut & Paste of sources. Keeps description (xml)
of source in clipboard for pasting in another session or in the same
(then it clones existing sources).
2020-10-11 23:41:24 +02:00
brunoherbelin
34b508a8dd BugFix: PatternSource pattern type is unsigned and undefined when
created
2020-10-11 16:01:57 +02:00
brunoherbelin
8297c85220 Cosmetic improvement of Action manager and Log messages. 2020-10-11 12:05:38 +02:00
brunoherbelin
650017c8f3 BugFix: history manager undo and redo for delete and recreation of
source, delete multiple sources or clones, etc.
2020-10-11 00:37:04 +02:00
brunoherbelin
2c1eaff476 improvement in order of delete in selection (for better history of
delete)
2020-10-10 15:30:28 +02:00
brunoherbelin
233fc64c4e Increased size of unique identifier of objects: using uint64 instead of
int. Deep change in all concerned objects (Node, Source, Shader, etc.).
No behavior change, just more robust in duration.
2020-10-06 22:45:52 +02:00
brunoherbelin
616c6c8bdf First working implementation of ActionManager, but incomplete. 2020-10-04 22:52:23 +02:00
brunoherbelin
5421b5e926 Cleanup Session loading (prepare for session history) 2020-10-03 18:45:30 +02:00
brunoherbelin
d563ee14a9 Cleanup source id management, and improved session merging and source
renaming.
2020-10-03 17:54:34 +02:00
brunoherbelin
fac798df93 BugFix: prevent from creating twice a source with the same device:
create a clone of the original device source instead.
2020-10-01 23:44:14 +02:00
brunoherbelin
c777a3d153 work in progress: implementation of stash in MixingView 2020-09-30 12:01:40 +02:00
brunoherbelin
dcffb1cbaa Change 'error' message for canceled (not failed) loading of session 2020-09-27 23:57:47 +02:00
brunoherbelin
7109b94484 Cleanup DeviceSource and PatternSource (no feature change) 2020-09-25 21:20:24 +02:00
brunoherbelin
84caf2da9a Integrated preliminary implementation of Device class with monitoring of
v4l2 device connected to the machine using GstDeviceMonitor.
2020-09-23 23:29:45 +02:00
brunoherbelin
b7d54dfadf Creation of the base class StreamSource. It is intended to become the
base class for all gstreamer pipeline. DeviceSource and PatternSource
inherit from it. A generic stream source class is created for
development tests and hack.
2020-09-22 22:58:37 +02:00
brunoherbelin
9251aff19f Create Device Source and integration of Stream 2020-09-21 22:41:20 +02:00
brunoherbelin
519baf7a3b Unified GUI behavior for source creation. cleanup of history of recent
files after loading error.
2020-09-20 11:28:09 +02:00
brunoherbelin
59db2cf57c Implementation of new type of source: Pattern generator (GUI, icons,
saving). A new class for gstreamer stream (Stream) is defined for
generic pipeline sources; to be integrated (inheritance) into
MediaPlayer.
2020-09-20 00:26:39 +02:00
brunoherbelin
23800b17b4 Fixed creation of empty session source. 2020-08-16 20:31:09 +02:00
brunoherbelin
f6588de023 Unified use of std::future for loading sessions in Mixer and
SessionSource.
2020-08-16 19:10:23 +02:00
brunoherbelin
c6d8c7189f Cleanup after all these changes in MediaPlayer and Mixer. 2020-08-16 16:16:05 +02:00
brunoherbelin
f3487d2074 Re-activating threaded loading of session. Seems stable now. 2020-08-15 22:41:24 +02:00
brunoherbelin
0e2af5b04f fighting the crash everywhere: random crash at random location. Changing
computer might be better idea than changing the code indefinitely...
2020-08-15 18:05:18 +02:00
brunoherbelin
44b9169cdc Changed MediaPlayer discovering process: using thread to perform
discovery (instead of async gstreamer callback).
2020-08-15 09:12:06 +02:00
brunoherbelin
5763a9e756 Thread safe loading and saving of session: use of std::future. 2020-08-14 22:28:36 +02:00
brunoherbelin
e73ebeab93 Disabling threaded session loading: crashing :( 2020-08-12 23:12:20 +02:00
brunoherbelin
3c5c6ef8ed Improve thread safety of Mixer (loading and importing sessions) 2020-08-12 22:46:58 +02:00
brunoherbelin
066b40723f Stabilized implementation of fading control, with change of view and
trigger of smooth transition. Bugfix with image processing shader
change.
2020-07-30 23:24:59 +02:00
brunoherbelin
4f17620cae Intregration of session fading with transition and session source
management.
2020-07-29 19:02:43 +02:00
brunoherbelin
837eb2d569 New: implementation of fading slider in MixingView. Needed to implement
decoration Disk and to update picking visitor.
2020-07-29 17:06:08 +02:00
brunoherbelin
fd30b742b8 Enable using smooth transition when closing/new session. 2020-07-28 19:08:59 +02:00
brunoherbelin
3f782736ac Fixed Recorder and Session to allow transfer of recorders when changing
session.
2020-07-27 11:45:15 +02:00
brunoherbelin
cec49a9a62 Cleanup MediaPlayer 2020-07-23 12:59:42 +02:00
brunoherbelin
d916bb5706 Fixed initialization of source and of SessionSource; sources are ready
after full initialization and in standly. A new button allows playing
the source (media or session) in the new source pannel.
2020-07-19 19:03:49 +02:00
brunoherbelin
7f3867521e Fixed mechanism to properly restore last session (verify validity of
last file saved, i.e not empty or unsaved session).
2020-07-09 13:13:52 +02:00
brunoherbelin
b5985847bf Almost done with implementation of Transition! Settings and UI side
pannel are operational. View is stable and animation with UpdateCallback
implemented.
2020-07-06 00:06:49 +02:00
brunoherbelin
e1e54bbaf3 Session transition robust to user manipulation. New pannel to configure
parameters of transition.
2020-07-05 15:45:52 +02:00
brunoherbelin
2cf804ac2d Initial implementation of the TransitionView with manual smooth
transition interface.
2020-07-05 00:16:43 +02:00
brunoherbelin
84cd772644 Added meta information in session file XML, for quick access to file
info (SessionCreator::info), displayed in the user interface (list of
sessions in quick access).
2020-07-04 10:18:26 +02:00
brunoherbelin
6cc756c401 Confirmed working implementation of Node UpdateCallback. For now example
used in visual effect on selecting a source as current.
2020-07-01 23:39:36 +02:00