FFmpeg
Loading...
Searching...
No Matches
asvenc.c File Reference

ASUS V1/V2 encoder. More...

#include "config_components.h"
#include "libavutil/attributes.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "libavutil/mem_internal.h"
#include "aandcttab.h"
#include "asv.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "encode.h"
#include "fdctdsp.h"
#include "mpeg12data.h"
#include "pixblockdsp.h"
#include "put_bits.h"

Go to the source code of this file.

Data Structures

struct  ASVEncContext
 

Enumerations

enum  {
  ASV1_MAX_BLOCK_SIZE = 8 + 10 * FFMAX(2 , 5 + 4 * 11 ) + 5 , ASV1_MAX_MB_SIZE = 6 * ASV1_MAX_BLOCK_SIZE , ASV2_MAX_BLOCK_SIZE = 4 + 8 + 16 * (6 + 4 * 13 ) , ASV2_MAX_MB_SIZE = 6 * ASV2_MAX_BLOCK_SIZE ,
  MAX_MB_SIZE = (FFMAX(ASV1_MAX_MB_SIZE, ASV2_MAX_MB_SIZE) + 7) / 8
}
 

Functions

static void asv1_put_level (PutBitContext *pb, int level)
 
static void asv2_put_level (ASVEncContext *a, PutBitContext *pb, int level)
 
static void asv1_encode_block (ASVEncContext *a, int16_t block[64])
 
static void asv2_encode_block (ASVEncContext *a, int16_t block[64])
 
static int encode_mb (ASVEncContext *a, int16_t block[6][64])
 
static void dct_get (ASVEncContext *a, const AVFrame *frame, int mb_x, int mb_y)
 
static void handle_partial_mb (ASVEncContext *a, const uint8_t *const data[3], const int linesizes[3], int valid_width, int valid_height)
 
static int encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pict, int *got_packet)
 
static av_cold int encode_init (AVCodecContext *avctx)
 

Detailed Description

ASUS V1/V2 encoder.

Definition in file asvenc.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ASV1_MAX_BLOCK_SIZE 
ASV1_MAX_MB_SIZE 
ASV2_MAX_BLOCK_SIZE 
ASV2_MAX_MB_SIZE 
MAX_MB_SIZE 

Definition at line 58 of file asvenc.c.

Function Documentation

◆ asv1_put_level()

static void asv1_put_level ( PutBitContext * pb,
int level )
inlinestatic

Definition at line 66 of file asvenc.c.

Referenced by asv1_encode_block().

◆ asv2_put_level()

static void asv2_put_level ( ASVEncContext * a,
PutBitContext * pb,
int level )
inlinestatic

Definition at line 81 of file asvenc.c.

Referenced by asv2_encode_block().

◆ asv1_encode_block()

static void asv1_encode_block ( ASVEncContext * a,
int16_t block[64] )
inlinestatic

Definition at line 100 of file asvenc.c.

Referenced by encode_mb().

◆ asv2_encode_block()

static void asv2_encode_block ( ASVEncContext * a,
int16_t block[64] )
inlinestatic

Definition at line 145 of file asvenc.c.

Referenced by encode_mb().

◆ encode_mb()

static int encode_mb ( ASVEncContext * a,
int16_t block[6][64] )
inlinestatic

Definition at line 198 of file asvenc.c.

Referenced by encode_frame(), and handle_partial_mb().

◆ dct_get()

static void dct_get ( ASVEncContext * a,
const AVFrame * frame,
int mb_x,
int mb_y )
inlinestatic

Definition at line 215 of file asvenc.c.

Referenced by encode_frame().

◆ handle_partial_mb()

static void handle_partial_mb ( ASVEncContext * a,
const uint8_t *const data[3],
const int linesizes[3],
int valid_width,
int valid_height )
static

Definition at line 241 of file asvenc.c.

Referenced by encode_frame().

◆ encode_frame()

static int encode_frame ( AVCodecContext * avctx,
AVPacket * pkt,
const AVFrame * pict,
int * got_packet )
static

Definition at line 293 of file asvenc.c.

◆ encode_init()

static av_cold int encode_init ( AVCodecContext * avctx)
static

Definition at line 373 of file asvenc.c.