vmnc.c File Reference

VMware Screen Codec (VMnc) decoder As Alex Beregszaszi discovered, this is effectively RFB data dump. More...

#include <stdio.h>
#include <stdlib.h>
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "bytestream.h"

Go to the source code of this file.

Data Structures

struct  VmncContext

Typedefs

typedef struct VmncContext VmncContext

Enumerations

enum  EncTypes {
  MAGIC_WMVd = 0x574D5664, MAGIC_WMVe, MAGIC_WMVf, MAGIC_WMVg,
  MAGIC_WMVh, MAGIC_WMVi, MAGIC_WMVj
}
enum  HexTile_Flags {
  HT_RAW = 1, HT_BKG = 2, HT_FG = 4, HT_SUB = 8,
  HT_CLR = 16
}

Functions

static av_always_inline int vmnc_get_pixel (GetByteContext *gb, int bpp, int be)
static void load_cursor (VmncContext *c)
static void put_cursor (uint8_t *dst, int stride, VmncContext *c, int dx, int dy)
static av_always_inline void paint_rect (uint8_t *dst, int dx, int dy, int w, int h, int color, int bpp, int stride)
static av_always_inline void paint_raw (uint8_t *dst, int w, int h, GetByteContext *gb, int bpp, int be, int stride)
static int decode_hextile (VmncContext *c, uint8_t *dst, GetByteContext *gb, int w, int h, int stride)
static void reset_buffers (VmncContext *c)
static int decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
static av_cold int decode_init (AVCodecContext *avctx)
static av_cold int decode_end (AVCodecContext *avctx)

Variables

AVCodec ff_vmnc_decoder

Detailed Description

VMware Screen Codec (VMnc) decoder As Alex Beregszaszi discovered, this is effectively RFB data dump.

Definition in file vmnc.c.

Typedef Documentation

typedef struct VmncContext VmncContext

Enumeration Type Documentation

enum EncTypes
Enumerator:
MAGIC_WMVd 
MAGIC_WMVe 
MAGIC_WMVf 
MAGIC_WMVg 
MAGIC_WMVh 
MAGIC_WMVi 
MAGIC_WMVj 

Definition at line 36 of file vmnc.c.

Enumerator:
HT_RAW 
HT_BKG 
HT_FG 
HT_SUB 
HT_CLR 

Definition at line 46 of file vmnc.c.

Function Documentation

static av_cold int decode_end ( AVCodecContext avctx)
static

Definition at line 538 of file vmnc.c.

static int decode_frame ( AVCodecContext avctx,
void data,
int *  got_frame,
AVPacket avpkt 
)
static

Definition at line 311 of file vmnc.c.

static int decode_hextile ( VmncContext c,
uint8_t dst,
GetByteContext gb,
int  w,
int  h,
int  stride 
)
static

Definition at line 244 of file vmnc.c.

Referenced by decode_frame().

static av_cold int decode_init ( AVCodecContext avctx)
static

Definition at line 510 of file vmnc.c.

static void load_cursor ( VmncContext c)
static

Definition at line 95 of file vmnc.c.

Referenced by decode_frame().

static av_always_inline void paint_raw ( uint8_t dst,
int  w,
int  h,
GetByteContext gb,
int  bpp,
int  be,
int  stride 
)
static

Definition at line 220 of file vmnc.c.

Referenced by decode_frame(), and decode_hextile().

static av_always_inline void paint_rect ( uint8_t dst,
int  dx,
int  dy,
int  w,
int  h,
int  color,
int  bpp,
int  stride 
)
static

Definition at line 190 of file vmnc.c.

Referenced by decode_hextile().

static void put_cursor ( uint8_t dst,
int  stride,
VmncContext c,
int  dx,
int  dy 
)
static

Definition at line 130 of file vmnc.c.

Referenced by decode_frame().

static void reset_buffers ( VmncContext c)
static

Definition at line 303 of file vmnc.c.

Referenced by decode_frame().

static av_always_inline int vmnc_get_pixel ( GetByteContext gb,
int  bpp,
int  be 
)
static

Definition at line 77 of file vmnc.c.

Referenced by decode_hextile(), load_cursor(), and paint_raw().

Variable Documentation

AVCodec ff_vmnc_decoder
Initial value:
{
.name = "vmnc",
.priv_data_size = sizeof(VmncContext),
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("VMware Screen Codec / VMware Video"),
}

Definition at line 551 of file vmnc.c.