29#define ALIAS_HEADER_SIZE 10
64 bytestream_put_be16(&buf,
width);
65 bytestream_put_be16(&buf,
height);
66 bytestream_put_be32(&buf, 0);
67 bytestream_put_be16(&buf, bits_pixel);
69 for (
int j = 0, bytes_pixel = bits_pixel >> 3; j <
height; j++) {
70 const uint8_t *in_buf =
frame->data[0] +
frame->linesize[0] * j;
71 const uint8_t *
const line_end = in_buf + bytes_pixel *
width;
72 while (in_buf < line_end) {
78 while (count < 255 && in_buf < line_end &&
pixel == *in_buf) {
82 bytestream_put_byte(&buf, count);
83 bytestream_put_byte(&buf,
pixel);
86 while (count < 255 && in_buf < line_end &&
91 bytestream_put_byte(&buf, count);
92 bytestream_put_be24(&buf,
pixel);
105 .p.name =
"alias_pix",
#define ALIAS_HEADER_SIZE
const FFCodec ff_alias_pix_encoder
static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
Libavcodec external API header.
#define CODEC_PIXFMTS(...)
#define FF_CODEC_ENCODE_CB(func)
#define CODEC_LONG_NAME(str)
int ff_alloc_packet(AVCodecContext *avctx, AVPacket *avpkt, int64_t size)
Check AVPacket size and allocate data.
static int encode_frame(OutputFile *of, OutputStream *ost, AVFrame *frame, AVPacket *pkt)
#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
This encoder can reorder user opaque values from input AVFrames and return them with corresponding ou...
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
void av_shrink_packet(AVPacket *pkt, int size)
Reduce packet size, correctly zeroing padding.
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
@ AV_PIX_FMT_GRAY8
Y , 8bpp.
@ AV_PIX_FMT_BGR24
packed RGB 8:8:8, 24bpp, BGRBGR...
main external API structure.
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx.
int width
picture width / height.
This structure describes decoded (raw) audio or video data.
This structure stores compressed data.