In previous versions, TRVCamSender component could send video from a single source; the same for audio. It was OK for direct sender-receiver connections, because a receiver can receive data from multiple senders. However, it was a problem for client-server applications, if a client wanted to translate multiple video and sound sources. In this version, allow to solve this problem.
The main new property related to media channels is TRVCamSender.ExtraMediaSources. A new optional parameter (AMediaIndex, index of the media channel) is added to the methods for sending commands, files and user data.
New parameter (AMediaIndex) is added to the events of TRVCamReceiver: OnReceiveFileData, OnReceiveCmdData, OnReceiveUserData, OnDataRead. If you already used these events, you need to add this parameter in the event handlers.
New property IndexFrom (index of media channel) is added to TRVCamView and TRVCamMultiView.Viewers.
TRVAudioPlayer is a new component allowing to play sound and to record it to a file. It can be linked with TRVMicrophone or TRVCamReceiver components.
The sound sub-system of TRVCamReceiver is rewritten, so sound is much clearer now.
The components now support stereo sound.
TRVCamRecorder is a new component for recording video and sound files. It gets audio and video data from TRVCamera, TRVMicrophone or TRVCamReceiver components.
Local web cameras
RVMedia supports more video formats (I420, NV12, IYUV, UYVY), even if corresponding decoders are not installed in the system.
RVMedia supports cameras having different ports for commands and RTSP video. A new property is added: TRVCamera.RTSPPort.
A new type of video source is added: DeviceType = rvdtUserData. In this mode, video frames are requested from an application in OnNewImage event.
Other changes in cameras
TRVCamera.FramePerSec is a fractional value now.
New TRVCamera.FFMpegProperty property contains sub-properties to configure FFmpeg. TRVCamera.UseFFMpeg property is moved to TRVCamera.FFMpegProperty.UseFFMpeg
FFmpeg is used in TRVCamRecorder and TRVAudioPlayer components for video and audio recording.
FFmpeg version 4 is supported (as well as versions 3 and 2).
The type of TRVMicrophone.VolumeMultiplier is changed from Byte to Double, to allow decreasing sound volume.
TRVCamMultiView is now implemented not as a parent window for internal TRVCamView components. Since this version, it draws everything in a single window. It allows implementing DirectX and OpenGL drawing modes more efficiently.
New property: TRVCamView.CaptionHeight and TRVCamMultiView.CaptionHeight.
All Delphi demo projects are moved from "Demos" to "Demos\Delphi" folder . New folder for Lazarus demo project: "Demos\Lazarus".
If you installed this new version without uninstalling the previous version, delete all folders from "Demo",except for "Delphi" and "Lazarus" folders.
New demo projects:
•SendAndReceive\TwoSides: how to connect two applications, if IP address is available is only for one side
•ClientServer\VideoChats\Lecture: one client (Lecturer) shows video from two sources to other clients (Students)
•Recording\AudioRecorder: how to use new TRVAudioPlayer component
•Recording\VideoRecorder: how to use new TRVCamRecorder component
•The following events have new parameter (RemoteSessionKey): TRVCamSender.OnConnected, OnConnecting, OnDisconnect, OnConnectError, TRVCamReceiver.OnConnected, OnConnecting, OnDisconnect, OnConnectError. If you already used these events, you need to add this parameter in the event handlers.
•All custom cursors now have 32x32, 48x48, and 64x64 versions.
•New VideoDefaultAcceptAll, AudioDefaultAcceptAll, UserDefaultAcceptAll, FileDefaultAcceptAll, CmdDefaultAcceptAll properties of items in TRVCamReceiver.Senders collection (default values correspond to the old behavior).
•Chinese user interface.
•new property: TRVCamera.SmoothImage and TRVCamReceiver.SmoothImage.