cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

video.h (2066B)


      1/**
      2 * FreeRDP: A Remote Desktop Protocol Implementation
      3 * Video Optimized Remoting Virtual Channel Extension
      4 *
      5 * Copyright 2017 David Fort <contact@hardening-consulting.com>
      6 *
      7 * Licensed under the Apache License, Version 2.0 (the "License");
      8 * you may not use this file except in compliance with the License.
      9 * You may obtain a copy of the License at
     10 *
     11 *     http://www.apache.org/licenses/LICENSE-2.0
     12 *
     13 * Unless required by applicable law or agreed to in writing, software
     14 * distributed under the License is distributed on an "AS IS" BASIS,
     15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16 * See the License for the specific language governing permissions and
     17 * limitations under the License.
     18 */
     19
     20#ifndef FREERDP_CHANNELS_CLIENT_VIDEO_H
     21#define FREERDP_CHANNELS_CLIENT_VIDEO_H
     22
     23#include <freerdp/client/geometry.h>
     24#include <freerdp/channels/video.h>
     25
     26typedef struct _VideoClientContext VideoClientContext;
     27typedef struct _VideoClientContextPriv VideoClientContextPriv;
     28typedef struct _VideoSurface VideoSurface;
     29
     30/** @brief an implementation of surface used by the video channel */
     31struct _VideoSurface
     32{
     33	UINT32 x, y, w, h;
     34	BYTE* data;
     35};
     36
     37typedef void (*pcVideoTimer)(VideoClientContext* video, UINT64 now);
     38typedef void (*pcVideoSetGeometry)(VideoClientContext* video, GeometryClientContext* geometry);
     39typedef VideoSurface* (*pcVideoCreateSurface)(VideoClientContext* video, BYTE* data, UINT32 x,
     40                                              UINT32 y, UINT32 width, UINT32 height);
     41typedef BOOL (*pcVideoShowSurface)(VideoClientContext* video, VideoSurface* surface);
     42typedef BOOL (*pcVideoDeleteSurface)(VideoClientContext* video, VideoSurface* surface);
     43
     44/** @brief context for the video (MS-RDPEVOR) channel */
     45struct _VideoClientContext
     46{
     47	void* handle;
     48	void* custom;
     49	VideoClientContextPriv* priv;
     50
     51	pcVideoSetGeometry setGeometry;
     52	pcVideoTimer timer;
     53	pcVideoCreateSurface createSurface;
     54	pcVideoShowSurface showSurface;
     55	pcVideoDeleteSurface deleteSurface;
     56};
     57
     58#endif /* FREERDP_CHANNELS_CLIENT_VIDEO_H */