FreeRDP
channels/rdpecam.h File Reference
#include <freerdp/api.h>
#include <freerdp/dvc.h>
#include <freerdp/types.h>
This graph shows which files directly or indirectly include this file:

Data Structures

struct  CAM_SHARED_MSG_HEADER
 
struct  CAM_SELECT_VERSION_REQUEST
 
struct  CAM_SELECT_VERSION_RESPONSE
 
struct  CAM_DEVICE_ADDED_NOTIFICATION
 
struct  CAM_DEVICE_REMOVED_NOTIFICATION
 
struct  CAM_SUCCESS_RESPONSE
 
struct  CAM_ERROR_RESPONSE
 
struct  CAM_ACTIVATE_DEVICE_REQUEST
 
struct  CAM_DEACTIVATE_DEVICE_REQUEST
 
struct  CAM_STREAM_LIST_REQUEST
 
struct  CAM_STREAM_DESCRIPTION
 
struct  CAM_STREAM_LIST_RESPONSE
 
struct  CAM_MEDIA_TYPE_LIST_REQUEST
 
struct  CAM_MEDIA_TYPE_DESCRIPTION
 
struct  CAM_MEDIA_TYPE_LIST_RESPONSE
 
struct  CAM_CURRENT_MEDIA_TYPE_REQUEST
 
struct  CAM_CURRENT_MEDIA_TYPE_RESPONSE
 
struct  CAM_START_STREAM_INFO
 
struct  CAM_START_STREAMS_REQUEST
 
struct  CAM_STOP_STREAMS_REQUEST
 
struct  CAM_SAMPLE_REQUEST
 
struct  CAM_SAMPLE_RESPONSE
 
struct  CAM_SAMPLE_ERROR_RESPONSE
 
struct  CAM_PROPERTY_LIST_REQUEST
 
struct  CAM_PROPERTY_DESCRIPTION
 
struct  CAM_PROPERTY_LIST_RESPONSE
 
struct  CAM_PROPERTY_VALUE_REQUEST
 
struct  CAM_PROPERTY_VALUE
 
struct  CAM_PROPERTY_VALUE_RESPONSE
 
struct  CAM_SET_PROPERTY_VALUE_REQUEST
 

Macros

#define RDPECAM_CHANNEL_NAME   "rdpecam"
 
#define RDPECAM_DVC_CHANNEL_NAME   "rdpecam"
 
#define RDPECAM_CONTROL_DVC_CHANNEL_NAME   "RDCamera_Device_Enumerator"
 
#define CAM_HEADER_SIZE   2
 
#define CAM_PROPERTY_ID_CAMERA_CONTROL_Exposure   0x01
 
#define CAM_PROPERTY_ID_CAMERA_CONTROL_Focus   0x02
 
#define CAM_PROPERTY_ID_CAMERA_CONTROL_Pan   0x03
 
#define CAM_PROPERTY_ID_CAMERA_CONTROL_Roll   0x04
 
#define CAM_PROPERTY_ID_CAMERA_CONTROL_Tilt   0x05
 
#define CAM_PROPERTY_ID_CAMERA_CONTROL_Zoom   0x06
 
#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_BacklightCompensation   0x01
 
#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_Brightness   0x02
 
#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_Contrast   0x03
 
#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_Hue   0x04
 
#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_WhiteBalance   0x05
 

Enumerations

enum  CAM_MSG_ID {
  CAM_MSG_ID_SuccessResponse = 0x01 , CAM_MSG_ID_ErrorResponse = 0x02 , CAM_MSG_ID_SelectVersionRequest = 0x03 , CAM_MSG_ID_SelectVersionResponse = 0x04 ,
  CAM_MSG_ID_DeviceAddedNotification = 0x05 , CAM_MSG_ID_DeviceRemovedNotification = 0x06 , CAM_MSG_ID_ActivateDeviceRequest = 0x07 , CAM_MSG_ID_DeactivateDeviceRequest = 0x08 ,
  CAM_MSG_ID_StreamListRequest = 0x09 , CAM_MSG_ID_StreamListResponse = 0x0A , CAM_MSG_ID_MediaTypeListRequest = 0x0B , CAM_MSG_ID_MediaTypeListResponse = 0x0C ,
  CAM_MSG_ID_CurrentMediaTypeRequest = 0x0D , CAM_MSG_ID_CurrentMediaTypeResponse = 0x0E , CAM_MSG_ID_StartStreamsRequest = 0x0F , CAM_MSG_ID_StopStreamsRequest = 0x10 ,
  CAM_MSG_ID_SampleRequest = 0x11 , CAM_MSG_ID_SampleResponse = 0x12 , CAM_MSG_ID_SampleErrorResponse = 0x13 , CAM_MSG_ID_PropertyListRequest = 0x14 ,
  CAM_MSG_ID_PropertyListResponse = 0x15 , CAM_MSG_ID_PropertyValueRequest = 0x16 , CAM_MSG_ID_PropertyValueResponse = 0x17 , CAM_MSG_ID_SetPropertyValueRequest = 0x18
}
 
enum  CAM_ERROR_CODE {
  CAM_ERROR_CODE_UnexpectedError = 0x00000001 , CAM_ERROR_CODE_InvalidMessage = 0x00000002 , CAM_ERROR_CODE_NotInitialized = 0x00000003 , CAM_ERROR_CODE_InvalidRequest = 0x00000004 ,
  CAM_ERROR_CODE_InvalidStreamNumber = 0x00000005 , CAM_ERROR_CODE_InvalidMediaType = 0x00000006 , CAM_ERROR_CODE_OutOfMemory = 0x00000007 , CAM_ERROR_CODE_ItemNotFound = 0x00000008 ,
  CAM_ERROR_CODE_SetNotFound = 0x00000009 , CAM_ERROR_CODE_OperationNotSupported = 0x0000000A
}
 
enum  CAM_STREAM_FRAME_SOURCE_TYPES { CAM_STREAM_FRAME_SOURCE_TYPE_Color = 0x0001 , CAM_STREAM_FRAME_SOURCE_TYPE_Infrared = 0x0002 , CAM_STREAM_FRAME_SOURCE_TYPE_Custom = 0x0008 }
 
enum  CAM_STREAM_CATEGORY { CAM_STREAM_CATEGORY_Capture = 0x01 }
 
enum  CAM_MEDIA_FORMAT {
  CAM_MEDIA_FORMAT_H264 = 0x01 , CAM_MEDIA_FORMAT_MJPG = 0x02 , CAM_MEDIA_FORMAT_YUY2 = 0x03 , CAM_MEDIA_FORMAT_NV12 = 0x04 ,
  CAM_MEDIA_FORMAT_I420 = 0x05 , CAM_MEDIA_FORMAT_RGB24 = 0x06 , CAM_MEDIA_FORMAT_RGB32 = 0x07
}
 
enum  CAM_MEDIA_TYPE_DESCRIPTION_FLAGS { CAM_MEDIA_TYPE_DESCRIPTION_FLAG_DecodingRequired = 0x01 , CAM_MEDIA_TYPE_DESCRIPTION_FLAG_BottomUpImage = 0x02 }
 
enum  CAM_PROPERTY_SET { CAM_PROPERTY_SET_CameraControl = 0x01 , CAM_PROPERTY_SET_VideoProcAmp = 0x02 }
 
enum  CAM_PROPERTY_CAPABILITIES { CAM_PROPERTY_CAPABILITY_Manual = 0x01 , CAM_PROPERTY_CAPABILITY_Auto = 0x02 }
 
enum  CAM_PROPERTY_MODE { CAM_PROPERTY_MODE_Manual = 0x01 , CAM_PROPERTY_MODE_Auto = 0x02 }
 

Macro Definition Documentation

◆ CAM_HEADER_SIZE

#define CAM_HEADER_SIZE   2

◆ CAM_PROPERTY_ID_CAMERA_CONTROL_Exposure

#define CAM_PROPERTY_ID_CAMERA_CONTROL_Exposure   0x01

◆ CAM_PROPERTY_ID_CAMERA_CONTROL_Focus

#define CAM_PROPERTY_ID_CAMERA_CONTROL_Focus   0x02

◆ CAM_PROPERTY_ID_CAMERA_CONTROL_Pan

#define CAM_PROPERTY_ID_CAMERA_CONTROL_Pan   0x03

◆ CAM_PROPERTY_ID_CAMERA_CONTROL_Roll

#define CAM_PROPERTY_ID_CAMERA_CONTROL_Roll   0x04

◆ CAM_PROPERTY_ID_CAMERA_CONTROL_Tilt

#define CAM_PROPERTY_ID_CAMERA_CONTROL_Tilt   0x05

◆ CAM_PROPERTY_ID_CAMERA_CONTROL_Zoom

#define CAM_PROPERTY_ID_CAMERA_CONTROL_Zoom   0x06

◆ CAM_PROPERTY_ID_VIDEO_PROC_AMP_BacklightCompensation

#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_BacklightCompensation   0x01

◆ CAM_PROPERTY_ID_VIDEO_PROC_AMP_Brightness

#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_Brightness   0x02

◆ CAM_PROPERTY_ID_VIDEO_PROC_AMP_Contrast

#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_Contrast   0x03

◆ CAM_PROPERTY_ID_VIDEO_PROC_AMP_Hue

#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_Hue   0x04

◆ CAM_PROPERTY_ID_VIDEO_PROC_AMP_WhiteBalance

#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_WhiteBalance   0x05

◆ RDPECAM_CHANNEL_NAME

#define RDPECAM_CHANNEL_NAME   "rdpecam"

FreeRDP: A Remote Desktop Protocol Implementation Video Capture Virtual Channel Extension

Copyright 2022 Pascal Nowack Pasca.nosp@m.l.No.nosp@m.wack@.nosp@m.gmx..nosp@m.de

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

◆ RDPECAM_CONTROL_DVC_CHANNEL_NAME

#define RDPECAM_CONTROL_DVC_CHANNEL_NAME   "RDCamera_Device_Enumerator"

◆ RDPECAM_DVC_CHANNEL_NAME

#define RDPECAM_DVC_CHANNEL_NAME   "rdpecam"

Enumeration Type Documentation

◆ CAM_ERROR_CODE

Enumerator
CAM_ERROR_CODE_UnexpectedError 
CAM_ERROR_CODE_InvalidMessage 
CAM_ERROR_CODE_NotInitialized 
CAM_ERROR_CODE_InvalidRequest 
CAM_ERROR_CODE_InvalidStreamNumber 
CAM_ERROR_CODE_InvalidMediaType 
CAM_ERROR_CODE_OutOfMemory 
CAM_ERROR_CODE_ItemNotFound 
CAM_ERROR_CODE_SetNotFound 
CAM_ERROR_CODE_OperationNotSupported 

◆ CAM_MEDIA_FORMAT

Enumerator
CAM_MEDIA_FORMAT_H264 
CAM_MEDIA_FORMAT_MJPG 
CAM_MEDIA_FORMAT_YUY2 
CAM_MEDIA_FORMAT_NV12 
CAM_MEDIA_FORMAT_I420 
CAM_MEDIA_FORMAT_RGB24 
CAM_MEDIA_FORMAT_RGB32 

◆ CAM_MEDIA_TYPE_DESCRIPTION_FLAGS

Enumerator
CAM_MEDIA_TYPE_DESCRIPTION_FLAG_DecodingRequired 
CAM_MEDIA_TYPE_DESCRIPTION_FLAG_BottomUpImage 

◆ CAM_MSG_ID

enum CAM_MSG_ID
Enumerator
CAM_MSG_ID_SuccessResponse 
CAM_MSG_ID_ErrorResponse 
CAM_MSG_ID_SelectVersionRequest 
CAM_MSG_ID_SelectVersionResponse 
CAM_MSG_ID_DeviceAddedNotification 
CAM_MSG_ID_DeviceRemovedNotification 
CAM_MSG_ID_ActivateDeviceRequest 
CAM_MSG_ID_DeactivateDeviceRequest 
CAM_MSG_ID_StreamListRequest 
CAM_MSG_ID_StreamListResponse 
CAM_MSG_ID_MediaTypeListRequest 
CAM_MSG_ID_MediaTypeListResponse 
CAM_MSG_ID_CurrentMediaTypeRequest 
CAM_MSG_ID_CurrentMediaTypeResponse 
CAM_MSG_ID_StartStreamsRequest 
CAM_MSG_ID_StopStreamsRequest 
CAM_MSG_ID_SampleRequest 
CAM_MSG_ID_SampleResponse 
CAM_MSG_ID_SampleErrorResponse 
CAM_MSG_ID_PropertyListRequest 
CAM_MSG_ID_PropertyListResponse 
CAM_MSG_ID_PropertyValueRequest 
CAM_MSG_ID_PropertyValueResponse 
CAM_MSG_ID_SetPropertyValueRequest 

◆ CAM_PROPERTY_CAPABILITIES

Enumerator
CAM_PROPERTY_CAPABILITY_Manual 
CAM_PROPERTY_CAPABILITY_Auto 

◆ CAM_PROPERTY_MODE

Enumerator
CAM_PROPERTY_MODE_Manual 
CAM_PROPERTY_MODE_Auto 

◆ CAM_PROPERTY_SET

Enumerator
CAM_PROPERTY_SET_CameraControl 
CAM_PROPERTY_SET_VideoProcAmp 

◆ CAM_STREAM_CATEGORY

Enumerator
CAM_STREAM_CATEGORY_Capture 

◆ CAM_STREAM_FRAME_SOURCE_TYPES

Enumerator
CAM_STREAM_FRAME_SOURCE_TYPE_Color 
CAM_STREAM_FRAME_SOURCE_TYPE_Infrared 
CAM_STREAM_FRAME_SOURCE_TYPE_Custom