#include "libavutil/intreadwrite.h"#include "libavutil/imgutils.h"#include "avcodec.h"#include "get_bits.h"Go to the source code of this file.
Data Structures | |
| struct | YopDecContext |
Functions | |
| static av_cold int | yop_decode_init (AVCodecContext *avctx) |
| static av_cold int | yop_decode_close (AVCodecContext *avctx) |
| static void | yop_paint_block (YopDecContext *s, int tag) |
| Paint a macroblock using the pattern in paint_lut. | |
| static int | yop_copy_previous_block (YopDecContext *s, int copy_tag) |
| Copy a previously painted macroblock to the current_block. | |
| static uint8_t | yop_get_next_nibble (YopDecContext *s) |
| Return the next nibble in sequence, consuming a new byte on the input only if necessary. | |
| static void | yop_next_macroblock (YopDecContext *s) |
| Take s->dstptr to the next macroblock in sequence. | |
| static int | yop_decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt) |
Variables | |
| static const uint8_t | paint_lut [15][4] |
| Lookup table for painting macroblocks. | |
| static const int8_t | motion_vector [16][2] |
| Lookup table for copying macroblocks. | |
| AVCodec | ff_yop_decoder |
| static int yop_copy_previous_block | ( | YopDecContext * | s, | |
| int | copy_tag | |||
| ) | [static] |
Copy a previously painted macroblock to the current_block.
| copy_tag | the tag that was in the nibble |
Definition at line 142 of file yop.c.
Referenced by yop_decode_frame().
| static av_cold int yop_decode_close | ( | AVCodecContext * | avctx | ) | [static] |
| static int yop_decode_frame | ( | AVCodecContext * | avctx, | |
| void * | data, | |||
| int * | data_size, | |||
| AVPacket * | avpkt | |||
| ) | [static] |
| static av_cold int yop_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
| static uint8_t yop_get_next_nibble | ( | YopDecContext * | s | ) | [static] |
Return the next nibble in sequence, consuming a new byte on the input only if necessary.
Definition at line 167 of file yop.c.
Referenced by yop_decode_frame().
| static void yop_next_macroblock | ( | YopDecContext * | s | ) | [static] |
Take s->dstptr to the next macroblock in sequence.
Definition at line 184 of file yop.c.
Referenced by yop_decode_frame().
| static void yop_paint_block | ( | YopDecContext * | s, | |
| int | tag | |||
| ) | [static] |
Paint a macroblock using the pattern in paint_lut.
| s | codec context | |
| tag | the tag that was in the nibble |
Definition at line 127 of file yop.c.
Referenced by yop_decode_frame().
Initial value:
{
.name = "yop",
.type = AVMEDIA_TYPE_VIDEO,
.id = CODEC_ID_YOP,
.priv_data_size = sizeof(YopDecContext),
.init = yop_decode_init,
.close = yop_decode_close,
.decode = yop_decode_frame,
.long_name = NULL_IF_CONFIG_SMALL("Psygnosis YOP Video"),
}
const int8_t motion_vector[16][2] [static] |
Initial value:
{{-4, -4}, {-2, -4},
{ 0, -4}, { 2, -4},
{-4, -2}, {-4, 0},
{-3, -3}, {-1, -3},
{ 1, -3}, { 3, -3},
{-3, -1}, {-2, -2},
{ 0, -2}, { 2, -2},
{ 4, -2}, {-2, 0},
}
Each entry contains the respective x and y pixel offset for the copy source.
Definition at line 70 of file yop.c.
Referenced by yop_copy_previous_block().
const uint8_t paint_lut[15][4] [static] |
Initial value:
{{1, 2, 3, 4}, {1, 2, 0, 3},
{1, 2, 1, 3}, {1, 2, 2, 3},
{1, 0, 2, 3}, {1, 0, 0, 2},
{1, 0, 1, 2}, {1, 1, 2, 3},
{0, 1, 2, 3}, {0, 1, 0, 2},
{1, 1, 0, 2}, {0, 1, 1, 2},
{0, 0, 1, 2}, {0, 0, 0, 1},
{1, 1, 1, 2},
}
Bytes 0-2 of each entry contain the macroblock positions to be painted (taken as (0, B0, B1, B2)). Byte 3 contains the number of bytes consumed on the input, equal to max(bytes 0-2) + 1.
Definition at line 55 of file yop.c.
Referenced by yop_paint_block().
1.5.8