TRVBufferOptions

<< Click to display table of contents >>

TRVBufferOptions

Buffering options for TRVMediaServer.

Unit [VCL and LCL] MRVType;

Unit [FMX] fmxMRVType;

Syntax

TRVBufferOptions = class(TPersistent);

hmtoggle_arrow1Hierarchy

Description

This is a type of TRVMediaServer.BufferOptions property.

This class has two sets of properties:

properties defining where the server stores temporal data (in memory or files):

oVideo: TRVStreamType – buffering options for video streams (default value = rvstMemory)

oAudio: TRVStreamType – buffering options for audio streams (default value = rvstMemory)

oUserData: TRVStreamType – buffering options for custom data (default value = rvstMemory)

oCmd: TRVStreamType – buffering options for commands (default value = rvstMemory)

oFileData: TRVStreamType – buffering options for files (default value = rvstFile)

properties defining buffer sizes:

o   VideoBufferSize: Cardinal (default value=MAX_VIDEO_BUFFER)

o   AudioBufferSize: Cardinal (default value=MAX_AUDIO_BUFFER)

o   UserDataBufferSize: Cardinal (default value=MAX_USER_BUFFER)

o   CmdBufferSize: Cardinal (default value=MAX_CMD_BUFFER)

o   FileDataBufferSize: Cardinal (default value=MAX_FILE_BUFFER)

and LimitType: TRVBufferLimitType (default value rvbltLimitMemory) property.

where

type
  TRVStreamType = (rvstMemory, rvstFile);

  TRVBufferLimitType = (rvbltNo, rvbltLimitAll, 

    rvbltLimitMemory);
const
  BUFFER_SIZE = 4096 * 2;

  MAX_VIDEO_BUFFER = BUFFER_SIZE * 100;

  MAX_AUDIO_BUFFER = BUFFER_SIZE * 200;

  MAX_CMD_BUFFER   = BUFFER_SIZE * 100;

  MAX_USER_BUFFER  = BUFFER_SIZE * 1000;

  MAX_FILE_BUFFER  = 1024*1024 * 10; // 10 Mb

When a buffer on the server exceeds the specified value, data in this buffer is dropped.

This behavior is controlled by LimitType property

Value

Meaning

rvbltNo

All buffers are unlimited, *BufferSize properties are ignored

rvbltLimitAll

All buffers are limited by *BufferSize properties

rvbltLimitMemory

Only memory buffers are limited