Go to the documentation of this file.
   31 #define WINDOW_NAME         "lavcxwdenc" 
   32 #define WINDOW_NAME_SIZE    11 
   35                             const AVFrame *pict, 
int *got_packet)
 
   39     uint32_t pixdepth, bpp, bpad, ncolors = 0, lsize, vclass, 
be = 0;
 
   40     uint32_t 
rgb[3] = { 0 }, bitorder = 0;
 
  158     bytestream_put_be32(&buf, header_size);
 
  161     bytestream_put_be32(&buf, pixdepth);      
 
  162     bytestream_put_be32(&buf, avctx->
width);  
 
  163     bytestream_put_be32(&buf, avctx->
height); 
 
  164     bytestream_put_be32(&buf, 0);             
 
  165     bytestream_put_be32(&buf, 
be);            
 
  166     bytestream_put_be32(&buf, 32);            
 
  167     bytestream_put_be32(&buf, bitorder);      
 
  168     bytestream_put_be32(&buf, bpad);          
 
  169     bytestream_put_be32(&buf, bpp);           
 
  170     bytestream_put_be32(&buf, lsize);         
 
  171     bytestream_put_be32(&buf, vclass);        
 
  172     bytestream_put_be32(&buf, 
rgb[0]);        
 
  173     bytestream_put_be32(&buf, 
rgb[1]);        
 
  174     bytestream_put_be32(&buf, 
rgb[2]);        
 
  175     bytestream_put_be32(&buf, 8);             
 
  176     bytestream_put_be32(&buf, ncolors);       
 
  177     bytestream_put_be32(&buf, ncolors);       
 
  178     bytestream_put_be32(&buf, avctx->
width);  
 
  179     bytestream_put_be32(&buf, avctx->
height); 
 
  180     bytestream_put_be32(&buf, 0);             
 
  181     bytestream_put_be32(&buf, 0);             
 
  182     bytestream_put_be32(&buf, 0);             
 
  186         memcpy(pal, p->
data[1], 
sizeof(pal));
 
  191     for (
i = 0; 
i < ncolors; 
i++) {
 
  193         uint8_t red, green, blue;
 
  196         red   = (
val >> 16) & 0xFF;
 
  197         green = (
val >>  8) & 0xFF;
 
  200         bytestream_put_be32(&buf, 
i);         
 
  201         bytestream_put_be16(&buf, red   << 8);
 
  202         bytestream_put_be16(&buf, green << 8);
 
  203         bytestream_put_be16(&buf, blue  << 8);
 
  204         bytestream_put_byte(&buf, 0x7);       
 
  205         bytestream_put_byte(&buf, 0);         
 
  
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it be(in the first position) for now. Options ------- Then comes the options array. This is what will define the user accessible options. For example
AVPixelFormat
Pixel format.
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
This structure describes decoded (raw) audio or video data.
@ AV_PIX_FMT_MONOWHITE
Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb.
@ AV_PIX_FMT_BGR24
packed RGB 8:8:8, 24bpp, BGRBGR...
@ AV_PIX_FMT_BGRA
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
Return the number of bits per pixel used by the pixel format described by pixdesc.
@ AV_PIX_FMT_RGB555BE
packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), big-endian , X=unused/undefined
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
int key_frame
1 -> keyframe, 0-> not
static double val(void *priv, double ch)
@ AV_PIX_FMT_BGR8
packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static enum AVPixelFormat pix_fmt
int avpriv_set_systematic_pal2(uint32_t pal[256], enum AVPixelFormat pix_fmt)
@ AV_PIX_FMT_RGBA
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
@ AV_PIX_FMT_RGB565LE
packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian
@ AV_PIX_FMT_BGR565LE
packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian
@ AV_PICTURE_TYPE_I
Intra.
@ AV_PIX_FMT_RGB8
packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb)
@ AV_PIX_FMT_GRAY8
Y , 8bpp.
@ AV_PIX_FMT_BGR555BE
packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), big-endian , X=unused/undefined
@ AV_PIX_FMT_ABGR
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
@ AV_PIX_FMT_BGR4_BYTE
packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)
enum AVPictureType pict_type
Picture type of the frame.
@ AV_PIX_FMT_RGB24
packed RGB 8:8:8, 24bpp, RGBRGB...
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
@ AV_PIX_FMT_BGR565BE
packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian
@ AV_PIX_FMT_ARGB
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
static av_always_inline void bytestream_put_buffer(uint8_t **b, const uint8_t *src, unsigned int size)
@ AV_PIX_FMT_RGB555LE
packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), little-endian, X=unused/undefined
#define i(width, name, range_min, range_max)
static int xwd_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pict, int *got_packet)
#define AV_PIX_FMT_FLAG_BE
Pixel format is big-endian.
const char * name
Name of the codec implementation.
@ AV_PIX_FMT_RGB4_BYTE
packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb)
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx.
@ AV_PIX_FMT_PAL8
8 bits with AV_PIX_FMT_RGB32 palette
main external API structure.
int ff_get_encode_buffer(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int flags)
Get a buffer for a packet.
@ AV_PIX_FMT_RGB565BE
packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
@ AV_PIX_FMT_BGR555LE
packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), little-endian, X=unused/undefined
This structure stores compressed data.
const AVCodec ff_xwd_encoder
int width
picture width / height.
int linesize[AV_NUM_DATA_POINTERS]
For video, a positive or negative value, which is typically indicating the size in bytes of each pict...