diff --git a/Daemons/vmpserverd/profiles/com.hugomelder.software.plist b/Daemons/vmpserverd/profiles/com.hugomelder.software.plist index c92d6a8..b94e36d 100644 --- a/Daemons/vmpserverd/profiles/com.hugomelder.software.plist +++ b/Daemons/vmpserverd/profiles/com.hugomelder.software.plist @@ -44,6 +44,12 @@ mountpoints single + intervideosrc channel={VIDEOCHANNEL.0} ! queue ! videoconvert ! x264enc bitrate=2500 ! rtph264pay name=pay0 pt=96 combined @@ -70,5 +76,35 @@ audioTest audiotestsrc ! voaacenc bitrate=96000 ! queue ! rtpmp4apay name=pay1 pt=97 + + + recordings + + + video + intervideosrc channel={VIDEOCHANNEL} ! queue ! + videoconvertscale add-borders=1 ! video/x-raw, width={WIDTH}, height={HEIGHT} ! x264enc bitrate={BITRATE} + + pulseAudio + pulsesrc device={PULSEDEV} ! voaacenc bitrate={BITRATE} + diff --git a/Daemons/vmpserverd/profiles/com.hugomelder.vaapi.plist b/Daemons/vmpserverd/profiles/com.hugomelder.vaapi.plist index 96c4cd7..ad997a1 100644 --- a/Daemons/vmpserverd/profiles/com.hugomelder.vaapi.plist +++ b/Daemons/vmpserverd/profiles/com.hugomelder.vaapi.plist @@ -113,5 +113,35 @@ audioTest audiotestsrc ! voaacenc bitrate=96000 ! queue ! rtpmp4apay name=pay1 pt=97 + + + recordings + + + video + intervideosrc channel={VIDEOCHANNEL} ! queue ! + vapostproc add-borders=1 ! video/x-raw(memory:VAMemory), width={WIDTH}, height={HEIGHT} ! vah264enc bitrate={BITRATE} + + pulseAudio + pulsesrc device={PULSEDEV} ! voaacenc bitrate={BITRATE} + diff --git a/Daemons/vmpserverd/src/models/VMPProfileModel.h b/Daemons/vmpserverd/src/models/VMPProfileModel.h index 0d29240..54ad6ff 100644 --- a/Daemons/vmpserverd/src/models/VMPProfileModel.h +++ b/Daemons/vmpserverd/src/models/VMPProfileModel.h @@ -54,6 +54,7 @@ extern NSString *const VMPProfilePlatformVAAPI; Currently, the following platforms are supported: - "all" - Most generic profile. Matches with all platforms. - "deepstream-6" - Platform supporting Nvidia Deepstream + - "vaapi" - Platform with vaapi support Nvidia Deepstream is a multimedia framework that supplies GStreamer elements making use of Nvidia technologies, @@ -67,6 +68,8 @@ extern NSString *const VMPProfilePlatformVAAPI; @property (nonatomic, strong) NSDictionary *channels; +@property (nonatomic, strong) NSDictionary *recordings; + /** @brief Load a profile from a propertyList representation. diff --git a/Daemons/vmpserverd/src/models/VMPProfileModel.m b/Daemons/vmpserverd/src/models/VMPProfileModel.m index 3db58f4..8abae08 100644 --- a/Daemons/vmpserverd/src/models/VMPProfileModel.m +++ b/Daemons/vmpserverd/src/models/VMPProfileModel.m @@ -30,6 +30,7 @@ - (id)initWithPropertyList:(id)propertyList error:(NSError **)error { SET_PROPERTY(_mountpoints, @"mountpoints"); SET_PROPERTY(_audioProviders, @"audioProviders"); SET_PROPERTY(_channels, @"channels"); + SET_PROPERTY(_recordings, @"recordings"); } return self; @@ -44,6 +45,7 @@ - (id)propertyList { VMP_ASSERT(_mountpoints, @"mountpoints is nil"); VMP_ASSERT(_audioProviders, @"audioProviders is nil"); VMP_ASSERT(_channels, @"channels is nil"); + VMP_ASSERT(_recordings, @"recordings is nil"); return @{ @"name" : _name, @@ -53,7 +55,8 @@ - (id)propertyList { @"supportedPlatforms" : _supportedPlatforms, @"mountpoints" : _mountpoints, @"audioProviders" : _audioProviders, - @"channels" : _channels + @"channels" : _channels, + @"recordings" : _recordings }; }