58 1, 2, 2, 2, 3, 3, 3, 4,
59 2, 2, 2, 3, 3, 3, 4, 4,
60 2, 2, 3, 3, 3, 4, 4, 4,
61 2, 2, 3, 3, 3, 4, 4, 5,
62 2, 3, 3, 3, 4, 4, 5, 6,
63 3, 3, 3, 4, 4, 5, 6, 7,
64 3, 3, 3, 4, 4, 5, 7, 7,
65 3, 3, 4, 4, 5, 7, 7, 7,
69 1, 5, 6, 7, 8, 9, 9, 11,
70 5, 5, 7, 8, 9, 9, 11, 12,
71 6, 7, 8, 9, 9, 11, 11, 12,
72 7, 7, 8, 9, 9, 11, 12, 13,
73 7, 8, 9, 9, 10, 11, 13, 16,
74 8, 9, 9, 10, 11, 13, 16, 19,
75 8, 9, 9, 11, 12, 15, 18, 23,
76 9, 9, 11, 12, 15, 18, 23, 27
81 #define FIC_HEADER_SIZE 27
103 for (i = 0; i < num_coeff; i++)
119 int y_off = tctx->
y_off;
124 for (p = 0; p < 3; p++) {
128 for (y = 0; y < (slice_h >> !!p); y += 8) {
220 for (slice = 0; slice < nslices; slice++) {
221 int slice_off =
AV_RB32(src + tsize + FIC_HEADER_SIZE + slice * 4);
223 int y_off = ctx->
slice_h * slice;
230 if (slice == nslices - 1) {
234 slice_size =
AV_RB32(src + tsize + FIC_HEADER_SIZE + slice * 4 + 4);
237 slice_size -= slice_off;
239 if (slice_off > msize || slice_off + slice_size > msize)
av_cold void ff_dsputil_init(DSPContext *c, AVCodecContext *avctx)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
This structure describes decoded (raw) audio or video data.
static int get_se_golomb(GetBitContext *gb)
read signed exp golomb code.
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits.
#define AV_LOG_WARNING
Something somehow does not look correct.
#define DECLARE_ALIGNED(n, t, v)
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx.
int bits_per_raw_sample
Bits per sample/pixel of internal libavcodec pixel/sample format.
void av_freep(void *arg)
Free a memory block which has been allocated with av_malloc(z)() or av_realloc() and set the pointer ...
static av_cold int fic_decode_close(AVCodecContext *avctx)
static int decode(MimicContext *ctx, int quality, int num_coeffs, int is_iframe)
void(* idct_put)(uint8_t *dest, int line_size, int16_t *block)
block -> idct -> clip to unsigned 8 bit -> dest.
AVFrame * av_frame_alloc(void)
Allocate an AVFrame and set its fields to default values.
int av_frame_ref(AVFrame *dst, const AVFrame *src)
Set up a new reference to the data described by the source frame.
static const uint8_t fic_header[7]
#define CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
bitstream reader API header.
uint8_t idct_permutation[64]
idct input permutation.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
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 const uint8_t fic_qmat_lq[64]
void av_log(void *avcl, int level, const char *fmt,...)
const char * name
Name of the codec implementation.
static int fic_decode_block(FICContext *ctx, GetBitContext *gb, uint8_t *dst, int stride, int16_t *block)
enum AVPictureType cur_frame_type
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...
enum AVPictureType pict_type
Picture type of the frame.
int width
picture width / height.
static av_cold int fic_decode_init(AVCodecContext *avctx)
Libavcodec external API header.
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
main external API structure.
static void close(AVCodecParserContext *s)
av_cold void ff_init_scantable(uint8_t *permutation, ScanTable *st, const uint8_t *src_scantable)
static unsigned int get_bits1(GetBitContext *s)
static int init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
Initialize GetBitContext.
FICThreadContext * slice_data
static const uint8_t fic_qmat_hq[64]
static int fic_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size)
Allocate a buffer, reusing the given one if large enough.
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
#define CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
common internal api header.
const uint8_t ff_zigzag_direct[64]
common internal and external API header
void(* clear_block)(int16_t *block)
static av_cold int init(AVCodecParserContext *s)
int(* execute)(struct AVCodecContext *c, int(*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size)
The codec may call this to execute several independent things.
int key_frame
1 -> keyframe, 0-> not
static int fic_decode_slice(AVCodecContext *avctx, void *tdata)
This structure stores compressed data.