#include "avcodec.h"
#include "bytestream.h"
#include "get_bits.h"
#include "dsputil.h"
Go to the source code of this file.
Definition in file truemotion2.c.
#define TM2_DELTAS 64 |
Definition at line 33 of file truemotion2.c.
Referenced by GET_TOK(), tm2_read_deltas(), and tm2_read_stream().
#define TM2_ESCAPE 0x80000000 |
#define TM2_INIT_POINTERS | ( | ) |
Value:
int *last, *clast; \ int *Y, *U, *V;\ int Ystride, Ustride, Vstride;\ \ Ystride = ctx->y_stride;\ Vstride = ctx->uv_stride;\ Ustride = ctx->uv_stride;\ Y = (ctx->cur?ctx->Y2:ctx->Y1) + by * 4 * Ystride + bx * 4;\ V = (ctx->cur?ctx->V2:ctx->V1) + by * 2 * Vstride + bx * 2;\ U = (ctx->cur?ctx->U2:ctx->U1) + by * 2 * Ustride + bx * 2;\ last = ctx->last + bx * 4;\ clast = ctx->clast + bx * 4;
Definition at line 372 of file truemotion2.c.
Referenced by tm2_hi_res_block(), tm2_low_res_block(), tm2_med_res_block(), and tm2_null_res_block().
#define TM2_INIT_POINTERS_2 | ( | ) |
Value:
int *Yo, *Uo, *Vo;\ int oYstride, oUstride, oVstride;\ \ TM2_INIT_POINTERS();\ oYstride = Ystride;\ oVstride = Vstride;\ oUstride = Ustride;\ Yo = (ctx->cur?ctx->Y1:ctx->Y2) + by * 4 * oYstride + bx * 4;\ Vo = (ctx->cur?ctx->V1:ctx->V2) + by * 2 * oVstride + bx * 2;\ Uo = (ctx->cur?ctx->U1:ctx->U2) + by * 2 * oUstride + bx * 2;
Definition at line 386 of file truemotion2.c.
Referenced by tm2_motion_block(), tm2_still_block(), and tm2_update_block().
#define TM2_RECALC_BLOCK | ( | CHR, | |||
stride, | |||||
last, | |||||
CD | ) |
Value:
{\ CD[0] = CHR[1] - last[1];\ CD[1] = (int)CHR[stride + 1] - (int)CHR[1];\ last[0] = (int)CHR[stride + 0];\ last[1] = (int)CHR[stride + 1];}
Definition at line 399 of file truemotion2.c.
Referenced by tm2_motion_block(), tm2_still_block(), and tm2_update_block().
enum TM2_BLOCKS |
Definition at line 38 of file truemotion2.c.
enum TM2_STREAMS |
Definition at line 35 of file truemotion2.c.
static av_cold int decode_end | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 945 of file truemotion2.c.
static int decode_frame | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | data_size, | |||
AVPacket * | avpkt | |||
) | [static] |
Definition at line 831 of file truemotion2.c.
static av_cold int decode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 885 of file truemotion2.c.
static int GET_TOK | ( | TM2Context * | ctx, | |
int | type | |||
) | [inline, static] |
Definition at line 354 of file truemotion2.c.
Referenced by tm2_decode_blocks(), tm2_hi_res_block(), tm2_low_res_block(), tm2_med_res_block(), tm2_motion_block(), and tm2_update_block().
static void tm2_apply_deltas | ( | TM2Context * | ctx, | |
int * | Y, | |||
int | stride, | |||
int * | deltas, | |||
int * | last | |||
) | [inline, static] |
Definition at line 406 of file truemotion2.c.
Referenced by tm2_hi_res_block(), tm2_low_res_block(), tm2_med_res_block(), and tm2_null_res_block().
static int tm2_build_huff_table | ( | TM2Context * | ctx, | |
TM2Codes * | code | |||
) | [static] |
static int tm2_decode_blocks | ( | TM2Context * | ctx, | |
AVFrame * | p | |||
) | [static] |
static void tm2_free_codes | ( | TM2Codes * | code | ) | [static] |
static int tm2_get_token | ( | GetBitContext * | gb, | |
TM2Codes * | code | |||
) | [inline, static] |
static void tm2_hi_res_block | ( | TM2Context * | ctx, | |
AVFrame * | pic, | |||
int | bx, | |||
int | by | |||
) | [inline, static] |
static void tm2_high_chroma | ( | int * | data, | |
int | stride, | |||
int * | last, | |||
int * | CD, | |||
int * | deltas | |||
) | [inline, static] |
Definition at line 424 of file truemotion2.c.
Referenced by tm2_hi_res_block(), and tm2_low_chroma().
static void tm2_low_chroma | ( | int * | data, | |
int | stride, | |||
int * | clast, | |||
int * | CD, | |||
int * | deltas, | |||
int | bx | |||
) | [inline, static] |
Definition at line 437 of file truemotion2.c.
Referenced by tm2_low_res_block(), tm2_med_res_block(), and tm2_null_res_block().
static void tm2_low_res_block | ( | TM2Context * | ctx, | |
AVFrame * | pic, | |||
int | bx, | |||
int | by | |||
) | [inline, static] |
static void tm2_med_res_block | ( | TM2Context * | ctx, | |
AVFrame * | pic, | |||
int | bx, | |||
int | by | |||
) | [inline, static] |
static void tm2_motion_block | ( | TM2Context * | ctx, | |
AVFrame * | pic, | |||
int | bx, | |||
int | by | |||
) | [inline, static] |
static void tm2_null_res_block | ( | TM2Context * | ctx, | |
AVFrame * | pic, | |||
int | bx, | |||
int | by | |||
) | [inline, static] |
static int tm2_read_deltas | ( | TM2Context * | ctx, | |
int | stream_id | |||
) | [static] |
static int tm2_read_header | ( | TM2Context * | ctx, | |
const uint8_t * | buf | |||
) | [inline, static] |
static int tm2_read_stream | ( | TM2Context * | ctx, | |
const uint8_t * | buf, | |||
int | stream_id, | |||
int | buf_size | |||
) | [static] |
static int tm2_read_tree | ( | TM2Context * | ctx, | |
uint32_t | prefix, | |||
int | length, | |||
TM2Huff * | huff | |||
) | [static] |
static void tm2_still_block | ( | TM2Context * | ctx, | |
AVFrame * | pic, | |||
int | bx, | |||
int | by | |||
) | [inline, static] |
static void tm2_update_block | ( | TM2Context * | ctx, | |
AVFrame * | pic, | |||
int | bx, | |||
int | by | |||
) | [inline, static] |
Initial value:
{ .name = "truemotion2", .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_TRUEMOTION2, .priv_data_size = sizeof(TM2Context), .init = decode_init, .close = decode_end, .decode = decode_frame, .capabilities = CODEC_CAP_DR1, .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 2.0"), }
Definition at line 971 of file truemotion2.c.
const int tm2_stream_order[TM2_NUM_STREAMS] [static] |