FreeRDP
include/freerdp/codec/h264.h File Reference
#include <winpr/wlog.h>
#include <freerdp/api.h>
#include <freerdp/types.h>
#include <freerdp/channels/rdpgfx.h>

Enumerations

enum  H264_RATECONTROL_MODE { H264_RATECONTROL_VBR = 0 , H264_RATECONTROL_CQP }
 
enum  H264_USAGETYPE { H264_SCREEN_CONTENT_REAL_TIME = 0 , H264_SCREEN_CONTENT_NON_REAL_TIME , H264_CAMERA_VIDEO_REAL_TIME , H264_CAMERA_VIDEO_NON_REAL_TIME }
 
enum  H264_CONTEXT_OPTION {
  H264_CONTEXT_OPTION_RATECONTROL , H264_CONTEXT_OPTION_BITRATE , H264_CONTEXT_OPTION_FRAMERATE , H264_CONTEXT_OPTION_QP ,
  H264_CONTEXT_OPTION_USAGETYPE
}
 

Functions

FREERDP_API void free_h264_metablock (RDPGFX_H264_METABLOCK *meta)
 
FREERDP_API BOOL h264_context_set_option (H264_CONTEXT *h264, H264_CONTEXT_OPTION option, UINT32 value)
 
FREERDP_API UINT32 h264_context_get_option (H264_CONTEXT *h264, H264_CONTEXT_OPTION option)
 
FREERDP_API INT32 avc420_compress (H264_CONTEXT *h264, const BYTE *pSrcData, DWORD SrcFormat, UINT32 nSrcStep, UINT32 nSrcWidth, UINT32 nSrcHeight, const RECTANGLE_16 *regionRect, BYTE **ppDstData, UINT32 *pDstSize, RDPGFX_H264_METABLOCK *meta)
 
FREERDP_API INT32 h264_get_yuv_buffer (H264_CONTEXT *h264, UINT32 nSrcStride, UINT32 nSrcWidth, UINT32 nSrcHeight, BYTE *YUVData[3], UINT32 stride[3])
 
FREERDP_API INT32 h264_compress (H264_CONTEXT *h264, BYTE **ppDstData, UINT32 *pDstSize)
 
FREERDP_API INT32 avc420_decompress (H264_CONTEXT *h264, const BYTE *pSrcData, UINT32 SrcSize, BYTE *pDstData, DWORD DstFormat, UINT32 nDstStep, UINT32 nDstWidth, UINT32 nDstHeight, const RECTANGLE_16 *regionRects, UINT32 numRegionRect)
 
FREERDP_API INT32 avc444_compress (H264_CONTEXT *h264, const BYTE *pSrcData, DWORD SrcFormat, UINT32 nSrcStep, UINT32 nSrcWidth, UINT32 nSrcHeight, BYTE version, const RECTANGLE_16 *regionRect, BYTE *op, BYTE **pDstData, UINT32 *pDstSize, BYTE **pAuxDstData, UINT32 *pAuxDstSize, RDPGFX_H264_METABLOCK *meta, RDPGFX_H264_METABLOCK *auxMeta)
 
FREERDP_API INT32 avc444_decompress (H264_CONTEXT *h264, BYTE op, const RECTANGLE_16 *regionRects, UINT32 numRegionRect, const BYTE *pSrcData, UINT32 SrcSize, const RECTANGLE_16 *auxRegionRects, UINT32 numAuxRegionRect, const BYTE *pAuxSrcData, UINT32 AuxSrcSize, BYTE *pDstData, DWORD DstFormat, UINT32 nDstStep, UINT32 nDstWidth, UINT32 nDstHeight, UINT32 codecId)
 
FREERDP_API BOOL h264_context_reset (H264_CONTEXT *h264, UINT32 width, UINT32 height)
 
FREERDP_API void h264_context_free (H264_CONTEXT *h264)
 
FREERDP_API H264_CONTEXT * h264_context_new (BOOL Compressor)
 

Enumeration Type Documentation

◆ H264_CONTEXT_OPTION

Enumerator
H264_CONTEXT_OPTION_RATECONTROL 
H264_CONTEXT_OPTION_BITRATE 
H264_CONTEXT_OPTION_FRAMERATE 
H264_CONTEXT_OPTION_QP 
H264_CONTEXT_OPTION_USAGETYPE 

◆ H264_RATECONTROL_MODE

Enumerator
H264_RATECONTROL_VBR 
H264_RATECONTROL_CQP 

◆ H264_USAGETYPE

Enumerator
H264_SCREEN_CONTENT_REAL_TIME 
H264_SCREEN_CONTENT_NON_REAL_TIME 
H264_CAMERA_VIDEO_REAL_TIME 
H264_CAMERA_VIDEO_NON_REAL_TIME 

Function Documentation

◆ avc420_compress()

FREERDP_API INT32 avc420_compress ( H264_CONTEXT *  h264,
const BYTE pSrcData,
DWORD  SrcFormat,
UINT32  nSrcStep,
UINT32  nSrcWidth,
UINT32  nSrcHeight,
const RECTANGLE_16 regionRect,
BYTE **  ppDstData,
UINT32 *  pDstSize,
RDPGFX_H264_METABLOCK meta 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ avc420_decompress()

FREERDP_API INT32 avc420_decompress ( H264_CONTEXT *  h264,
const BYTE pSrcData,
UINT32  SrcSize,
BYTE pDstData,
DWORD  DstFormat,
UINT32  nDstStep,
UINT32  nDstWidth,
UINT32  nDstHeight,
const RECTANGLE_16 regionRects,
UINT32  numRegionRect 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ avc444_compress()

FREERDP_API INT32 avc444_compress ( H264_CONTEXT *  h264,
const BYTE pSrcData,
DWORD  SrcFormat,
UINT32  nSrcStep,
UINT32  nSrcWidth,
UINT32  nSrcHeight,
BYTE  version,
const RECTANGLE_16 regionRect,
BYTE op,
BYTE **  pDstData,
UINT32 *  pDstSize,
BYTE **  pAuxDstData,
UINT32 *  pAuxDstSize,
RDPGFX_H264_METABLOCK meta,
RDPGFX_H264_METABLOCK auxMeta 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ avc444_decompress()

FREERDP_API INT32 avc444_decompress ( H264_CONTEXT *  h264,
BYTE  op,
const RECTANGLE_16 regionRects,
UINT32  numRegionRect,
const BYTE pSrcData,
UINT32  SrcSize,
const RECTANGLE_16 auxRegionRects,
UINT32  numAuxRegionRect,
const BYTE pAuxSrcData,
UINT32  AuxSrcSize,
BYTE pDstData,
DWORD  DstFormat,
UINT32  nDstStep,
UINT32  nDstWidth,
UINT32  nDstHeight,
UINT32  codecId 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ free_h264_metablock()

FREERDP_API void free_h264_metablock ( RDPGFX_H264_METABLOCK meta)
Here is the caller graph for this function:

◆ h264_compress()

FREERDP_API INT32 h264_compress ( H264_CONTEXT *  h264,
BYTE **  ppDstData,
UINT32 *  pDstSize 
)

Function description

Returns
Here is the caller graph for this function:

◆ h264_context_free()

FREERDP_API void h264_context_free ( H264_CONTEXT *  h264)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ h264_context_get_option()

FREERDP_API UINT32 h264_context_get_option ( H264_CONTEXT *  h264,
H264_CONTEXT_OPTION  option 
)

◆ h264_context_new()

FREERDP_API H264_CONTEXT* h264_context_new ( BOOL  Compressor)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ h264_context_reset()

FREERDP_API BOOL h264_context_reset ( H264_CONTEXT *  h264,
UINT32  width,
UINT32  height 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ h264_context_set_option()

FREERDP_API BOOL h264_context_set_option ( H264_CONTEXT *  h264,
H264_CONTEXT_OPTION  option,
UINT32  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ h264_get_yuv_buffer()

FREERDP_API INT32 h264_get_yuv_buffer ( H264_CONTEXT *  h264,
UINT32  nSrcStride,
UINT32  nSrcWidth,
UINT32  nSrcHeight,
BYTE YUVData[3],
UINT32  stride[3] 
)

Function description

Returns
Here is the call graph for this function:
Here is the caller graph for this function: