cscg24-guacamole

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

tsmf.h (1846B)


      1/**
      2 * FreeRDP: A Remote Desktop Protocol Implementation
      3 * Multimedia Redirection Virtual Channel Types
      4 *
      5 * Copyright 2011 Vic Lee
      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/* DEPRECATION WARNING:
     21 *
     22 * This channel is unmaintained and not used since windows 7.
     23 * Only compile and use it if absolutely necessary, otherwise
     24 * deactivate it or use the newer [MS-RDPEVOR] video redirection.
     25 */
     26
     27#ifndef FREERDP_CHANNEL_TSMF_CLIENT_TSMF_H
     28#define FREERDP_CHANNEL_TSMF_CLIENT_TSMF_H
     29
     30#include <freerdp/codec/region.h>
     31
     32#include <freerdp/channels/tsmf.h>
     33
     34/* RDP_VIDEO_FRAME_EVENT.frame_pixfmt */
     35/* http://www.fourcc.org/yuv.php */
     36#define RDP_PIXFMT_I420 0x30323449
     37#define RDP_PIXFMT_YV12 0x32315659
     38
     39struct _TSMF_VIDEO_FRAME_EVENT
     40{
     41	BYTE* frameData;
     42	UINT32 frameSize;
     43	UINT32 framePixFmt;
     44	INT16 frameWidth;
     45	INT16 frameHeight;
     46	INT16 x;
     47	INT16 y;
     48	INT16 width;
     49	INT16 height;
     50	UINT16 numVisibleRects;
     51	RECTANGLE_16* visibleRects;
     52};
     53typedef struct _TSMF_VIDEO_FRAME_EVENT TSMF_VIDEO_FRAME_EVENT;
     54
     55/**
     56 * Client Interface
     57 */
     58
     59typedef struct _tsmf_client_context TsmfClientContext;
     60
     61typedef int (*pcTsmfFrameEvent)(TsmfClientContext* context, TSMF_VIDEO_FRAME_EVENT* event);
     62
     63struct _tsmf_client_context
     64{
     65	void* handle;
     66	void* custom;
     67
     68	pcTsmfFrameEvent FrameEvent;
     69};
     70
     71#endif /* FREERDP_CHANNEL_TSMF_CLIENT_TSMF_H */