31 #define SMACKER_PAL 0x01
32 #define SMACKER_FLAG_RING_FRAME 0x01
81 0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x18, 0x1C,
82 0x20, 0x24, 0x28, 0x2C, 0x30, 0x34, 0x38, 0x3C,
83 0x41, 0x45, 0x49, 0x4D, 0x51, 0x55, 0x59, 0x5D,
84 0x61, 0x65, 0x69, 0x6D, 0x71, 0x75, 0x79, 0x7D,
85 0x82, 0x86, 0x8A, 0x8E, 0x92, 0x96, 0x9A, 0x9E,
86 0xA2, 0xA6, 0xAA, 0xAE, 0xB2, 0xB6, 0xBA, 0xBE,
87 0xC3, 0xC7, 0xCB, 0xCF, 0xD3, 0xD7, 0xDB, 0xDF,
88 0xE3, 0xE7, 0xEB, 0xEF, 0xF3, 0xF7, 0xFB, 0xFF
94 if(p->
buf[0] ==
'S' && p->
buf[1] ==
'M' && p->
buf[2] ==
'K'
95 && (p->
buf[3] ==
'2' || p->
buf[3] ==
'4'))
120 for(i = 0; i < 7; i++)
134 for(i = 0; i < 7; i++) {
140 if(smk->
frames > 0xFFFFFF) {
150 for(i = 0; i < smk->
frames; i++) {
153 for(i = 0; i < smk->
frames; i++) {
178 for(i = 0; i < 7; i++) {
253 uint8_t *pal = smk->
pal;
256 memcpy(oldpal, pal, 768);
266 sz += (t & 0x7F) + 1;
267 pal += ((t & 0x7F) + 1) * 3;
271 if (off + j > 0xff) {
273 "Invalid palette update, offset=%d length=%d extends beyond palette size\n",
278 while(j-- && sz < 256) {
279 *pal++ = oldpal[off + 0];
280 *pal++ = oldpal[off + 1];
281 *pal++ = oldpal[off + 2];
298 for(i = 0; i < 7; i++) {
304 if (!size || size > frame_size) {
323 if (frame_size < 0 || frame_size >= INT_MAX/2)
329 pkt->
data[0] = palchange;
330 memcpy(pkt->
data + 1, smk->
pal, 768);
332 if(ret != frame_size)
335 pkt->
size = ret + 769;
359 for(i = 0; i < 7; i++)
void * av_mallocz(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
enum PixelFormat pix_fmt
Pixel format, see PIX_FMT_xxx.
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values.
int index
stream index in AVFormatContext
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
void * av_realloc(void *ptr, size_t size)
Allocate or reallocate a block of memory.
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
static int read_header(FFV1Context *f)
#define AVERROR_EOF
End of file.
static av_cold int read_close(AVFormatContext *ctx)
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
int bits_per_coded_sample
bits per sample/pixel from the demuxer (needed for huffyuv).
int avio_read(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
void av_free(void *ptr)
Free a memory block which has been allocated with av_malloc(z)() or av_realloc(). ...
unsigned int avio_rl32(AVIOContext *s)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
void av_log(void *avcl, int level, const char *fmt,...)
AVStream * avformat_new_stream(AVFormatContext *s, AVCodec *c)
Add a new stream to a media file.
int avio_r8(AVIOContext *s)
AVCodecContext * codec
codec context
int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)
Reduce a fraction.
unsigned char * buf
Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero.
int width
picture width / height.
static int read_probe(AVProbeData *p)
enum AVMediaType codec_type
int sample_rate
samples per second
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
unsigned int codec_tag
fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
static int read_packet(AVFormatContext *ctx, AVPacket *pkt)
void * av_malloc(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
#define FF_INPUT_BUFFER_PADDING_SIZE
Required number of additionally allocated bytes at the end of the input bitstream for decoding...
This structure contains the data a format has to probe a file.
int64_t duration
Decoding: duration of the stream, in stream time base.
8 bit with PIX_FMT_RGB32 palette
int eof_reached
true if eof reached
int channels
number of audio channels
void * priv_data
Format private data.
unsigned int avio_rl24(AVIOContext *s)
#define MKTAG(a, b, c, d)
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...