38     unsigned int chunk_id = 0, chunk_arg = 0;
 
   39     unsigned long chunk_size = 0;
 
   40     int i, j, k, nv1, nv2, vqflg = 0, vqflg_pos = -1;
 
   41     int vqid, xpos, ypos, xp, yp, x, y, mx, my;
 
   42     int frame_stats[2][4] = {{0},{0}};
 
   47         chunk_id   = bytestream2_get_le16(&ri->
gb);
 
   48         chunk_size = bytestream2_get_le32(&ri->
gb);
 
   49         chunk_arg  = bytestream2_get_le16(&ri->
gb);
 
   54             if((nv1 = chunk_arg >> 8) == 0)
 
   56             if((nv2 = chunk_arg & 0xff) == 0 && nv1 * 6 < chunk_size)
 
   58             for(i = 0; i < nv1; i++) {
 
   59                 ri->
cb2x2[i].
y[0] = bytestream2_get_byte(&ri->
gb);
 
   60                 ri->
cb2x2[i].
y[1] = bytestream2_get_byte(&ri->
gb);
 
   61                 ri->
cb2x2[i].
y[2] = bytestream2_get_byte(&ri->
gb);
 
   62                 ri->
cb2x2[i].
y[3] = bytestream2_get_byte(&ri->
gb);
 
   63                 ri->
cb2x2[i].
u    = bytestream2_get_byte(&ri->
gb);
 
   64                 ri->
cb2x2[i].
v    = bytestream2_get_byte(&ri->
gb);
 
   66             for(i = 0; i < nv2; i++)
 
   67                 for(j = 0; j < 4; j++)
 
   68                     ri->
cb4x4[i].
idx[j] = bytestream2_get_byte(&ri->
gb);
 
   81         for (yp = ypos; yp < ypos + 16; yp += 8)
 
   82             for (xp = xpos; xp < xpos + 16; xp += 8) {
 
   88                     vqflg = bytestream2_get_le16(&ri->
gb);
 
   91                 vqid = (vqflg >> (vqflg_pos * 2)) & 0x3;
 
   92                 frame_stats[0][vqid]++;
 
   99                     int byte = bytestream2_get_byte(&ri->
gb);
 
  100                     mx = 8 - (byte >> 4) - ((
signed char) (chunk_arg >> 8));
 
  101                     my = 8 - (byte & 0xf) - ((
signed char) chunk_arg);
 
  106                     qcell = ri->
cb4x4 + bytestream2_get_byte(&ri->
gb);
 
  113                     for (k = 0; k < 4; k++) {
 
  123                             vqflg = bytestream2_get_le16(&ri->
gb);
 
  126                         vqid = (vqflg >> (vqflg_pos * 2)) & 0x3;
 
  127                         frame_stats[1][vqid]++;
 
  133                             int byte = bytestream2_get_byte(&ri->
gb);
 
  134                             mx = 8 - (byte >> 4) - ((
signed char) (chunk_arg >> 8));
 
  135                             my = 8 - (byte & 0xf) - ((
signed char) chunk_arg);
 
  140                             qcell = ri->
cb4x4 + bytestream2_get_byte(&ri->
gb);
 
  161         if (xpos >= ri->
width) {
 
  200                             void *
data, 
int *got_frame,
 
  204     int buf_size = avpkt->
size;
 
static void copy(const float *p1, float *p2, const int length)
 
This structure describes decoded (raw) audio or video data. 
 
ptrdiff_t const GLvoid * data
 
static int chunk_start(AVFormatContext *s)
 
static av_cold int init(AVCodecContext *avctx)
 
void ff_apply_vector_2x2(RoqContext *ri, int x, int y, roq_cell *cell)
 
enum AVColorRange color_range
MPEG vs JPEG YUV range. 
 
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx. 
 
static av_always_inline void bytestream2_init(GetByteContext *g, const uint8_t *buf, int buf_size)
 
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
 
int ff_reget_buffer(AVCodecContext *avctx, AVFrame *frame)
Identical in function to av_frame_make_writable(), except it uses ff_get_buffer() to allocate the buf...
 
void void avpriv_request_sample(void *avc, const char *msg,...) av_printf_format(2
Log a generic warning message about a missing feature. 
 
AVFrame * av_frame_alloc(void)
Allocate an AVFrame and set its fields to default values. 
 
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code. 
 
#define RoQ_QUAD_CODEBOOK
 
int av_frame_ref(AVFrame *dst, const AVFrame *src)
Set up a new reference to the data described by the source frame. 
 
#define AV_LOG_VERBOSE
Detailed information. 
 
void ff_apply_motion_4x4(RoqContext *ri, int x, int y, int deltax, int deltay)
 
void ff_apply_motion_8x8(RoqContext *ri, int x, int y, int deltax, int deltay)
 
static av_cold int roq_decode_end(AVCodecContext *avctx)
 
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
 
static void roqvideo_decode_frame(RoqContext *ri)
 
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g. 
 
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
 
static int roq_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
 
static av_always_inline unsigned int bytestream2_get_bytes_left(GetByteContext *g)
 
simple assert() macros that are a bit more flexible than ISO C assert(). 
 
const char * name
Name of the codec implementation. 
 
int av_frame_copy(AVFrame *dst, const AVFrame *src)
Copy the frame data from src to dst. 
 
int width
picture width / height. 
 
the normal 2^n-1 "JPEG" YUV ranges 
 
#define AVERROR_PATCHWELCOME
Not yet implemented in FFmpeg, patches welcome. 
 
static av_always_inline int bytestream2_tell(GetByteContext *g)
 
Libavcodec external API header. 
 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_WB24 unsigned int_TMPL AV_WB16 unsigned int_TMPL byte
 
main external API structure. 
 
static av_cold int roq_decode_init(AVCodecContext *avctx)
 
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes. 
 
common internal api header. 
 
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting col...
 
void ff_apply_vector_4x4(RoqContext *ri, int x, int y, roq_cell *cell)
 
#define FFSWAP(type, a, b)
 
This structure stores compressed data. 
 
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.