h264_openh264.c File Reference
#include <freerdp/config.h>
#include <winpr/library.h>
#include <winpr/assert.h>
#include <freerdp/log.h>
#include <freerdp/codec/h264.h>
#include <wels/codec_def.h>
#include <wels/codec_api.h>
#include <wels/codec_ver.h>
#include "h264.h"


typedef void(* pWelsGetCodecVersionEx) (OpenH264Version *pVersion)
typedef long(* pWelsCreateDecoder) (ISVCDecoder **ppDecoder)
typedef void(* pWelsDestroyDecoder) (ISVCDecoder *pDecoder)
typedef int(* pWelsCreateSVCEncoder) (ISVCEncoder **ppEncoder)
typedef void(* pWelsDestroySVCEncoder) (ISVCEncoder *pEncoder)


static void openh264_trace_callback (H264_CONTEXT *h264, int level, const char *message)
static int openh264_decompress (H264_CONTEXT *h264, const BYTE *pSrcData, UINT32 SrcSize)
static int openh264_compress (H264_CONTEXT *h264, const BYTE **pYUVData, const UINT32 *iStride, BYTE **ppDstData, UINT32 *pDstSize)
static void openh264_uninit (H264_CONTEXT *h264)
static BOOL openh264_init (H264_CONTEXT *h264)


const H264_CONTEXT_SUBSYSTEM g_Subsystem_OpenH264

Typedef Documentation

◆ pWelsCreateDecoder

typedef long(* pWelsCreateDecoder) (ISVCDecoder **ppDecoder)

◆ pWelsCreateSVCEncoder

typedef int(* pWelsCreateSVCEncoder) (ISVCEncoder **ppEncoder)

◆ pWelsDestroyDecoder

typedef void(* pWelsDestroyDecoder) (ISVCDecoder *pDecoder)

◆ pWelsDestroySVCEncoder

typedef void(* pWelsDestroySVCEncoder) (ISVCEncoder *pEncoder)

◆ pWelsGetCodecVersionEx

typedef void(* pWelsGetCodecVersionEx) (OpenH264Version *pVersion)

FreeRDP: A Remote Desktop Protocol Implementation H.264 Bitmap Compression

Copyright 2014 Mike McDonald Copyright 2015 Vic Lee Copyright 2014 Armin Novak

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

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.

Function Documentation

◆ openh264_compress()

static int openh264_compress ( H264_CONTEXT *  h264,
const BYTE **  pYUVData,
const UINT32 *  iStride,
BYTE **  ppDstData,
UINT32 *  pDstSize 

◆ openh264_decompress()

static int openh264_decompress ( H264_CONTEXT *  h264,
const BYTE pSrcData,
UINT32  SrcSize 

◆ openh264_init()

static BOOL openh264_init ( H264_CONTEXT *  h264)
Here is the call graph for this function:

◆ openh264_trace_callback()

static void openh264_trace_callback ( H264_CONTEXT *  h264,
int  level,
const char *  message 
Here is the caller graph for this function:

◆ openh264_uninit()

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

Variable Documentation

◆ g_Subsystem_OpenH264

const H264_CONTEXT_SUBSYSTEM g_Subsystem_OpenH264
Initial value:
= { "OpenH264", openh264_init, openh264_uninit,
static BOOL openh264_init(H264_CONTEXT *h264)
Definition: h264_openh264.c:486
static void openh264_uninit(H264_CONTEXT *h264)
Definition: h264_openh264.c:387
static int openh264_compress(H264_CONTEXT *h264, const BYTE **pYUVData, const UINT32 *iStride, BYTE **ppDstData, UINT32 *pDstSize)
Definition: h264_openh264.c:182
static int openh264_decompress(H264_CONTEXT *h264, const BYTE *pSrcData, UINT32 SrcSize)
Definition: h264_openh264.c:77