1 /*
2 * XBM image format
3 *
4 * Copyright (c) 2012 Paul B Mahol
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
26
28 const AVFrame *p,
int *got_packet)
29 {
30 int i, j, ret,
size, linesize;
32
33 linesize = (avctx->
width + 7) / 8;
34 size = avctx->
height * (linesize * 7 + 2) + 110;
36 return ret;
37
40
41 buf +=
snprintf(buf, 32,
"#define image_width %u\n", avctx->
width);
42 buf +=
snprintf(buf, 33,
"#define image_height %u\n", avctx->
height);
43 buf +=
snprintf(buf, 40,
"static unsigned char image_bits[] = {\n");
44 for (i = 0; i < avctx->
height; i++) {
45 for (j = 0; j < linesize; j++)
49 }
51
54 *got_packet = 1;
55 return 0;
56 }
57
66 };
This structure describes decoded (raw) audio or video data.
static int xbm_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *p, int *got_packet)
const uint8_t ff_reverse[256]
int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64_t min_size)
Check AVPacket size and/or allocate data.
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
const char * name
Name of the codec implementation.
int flags
A combination of AV_PKT_FLAG values.
int width
picture width / height.
Libavcodec external API header.
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
main external API structure.
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
common internal api header.
Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb...
AVPixelFormat
Pixel format.
This structure stores compressed data.