Data Structures | Typedefs | Enumerations | Functions | Variables

libavcodec/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/intreadwrite.h"
#include "avcodec.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 (const uint8_t *buf, int bpp, int be)
static void load_cursor (VmncContext *c, const uint8_t *src)
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, const uint8_t *src, int bpp, int be, int stride)
static int decode_hextile (VmncContext *c, uint8_t *dst, const uint8_t *src, int ssize, int w, int h, int stride)
static int decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static av_cold int decode_init (AVCodecContext *avctx)
static av_cold int decode_end (AVCodecContext *avctx)

Variables

AVCodec 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 34 of file vmnc.c.

Enumerator:
HT_RAW 
HT_BKG 
HT_FG 
HT_SUB 
HT_CLR 

Definition at line 44 of file vmnc.c.


Function Documentation

static av_cold int decode_end ( AVCodecContext avctx  )  [static]

Definition at line 498 of file vmnc.c.

static int decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
AVPacket avpkt 
) [static]

Definition at line 287 of file vmnc.c.

static int decode_hextile ( VmncContext c,
uint8_t *  dst,
const uint8_t *  src,
int  ssize,
int  w,
int  h,
int  stride 
) [static]

Definition at line 227 of file vmnc.c.

Referenced by decode_frame().

static av_cold int decode_init ( AVCodecContext avctx  )  [static]

Definition at line 462 of file vmnc.c.

static void load_cursor ( VmncContext c,
const uint8_t *  src 
) [static]

Definition at line 86 of file vmnc.c.

Referenced by decode_frame().

static av_always_inline void paint_raw ( uint8_t *  dst,
int  w,
int  h,
const uint8_t *  src,
int  bpp,
int  be,
int  stride 
) [static]

Definition at line 204 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 174 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 117 of file vmnc.c.

Referenced by decode_frame().

static av_always_inline int vmnc_get_pixel ( const uint8_t *  buf,
int  bpp,
int  be 
) [static]

Definition at line 74 of file vmnc.c.

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


Variable Documentation

Initial value:
 {
    "vmnc",
    AVMEDIA_TYPE_VIDEO,
    CODEC_ID_VMNC,
    sizeof(VmncContext),
    decode_init,
    NULL,
    decode_end,
    decode_frame,
    CODEC_CAP_DR1,
    .long_name = NULL_IF_CONFIG_SMALL("VMware Screen Codec / VMware Video"),
}

Definition at line 511 of file vmnc.c.