Go to the documentation of this file.
   79                 14  + 24 ], *bufp = buf;
 
   80     int writing_webp_header = 0, 
skip = 0;
 
   84     if (!
w->last_pkt->size)
 
   96     if (!
w->wrote_webp_header) {
 
   97         bytestream_put_le32(&bufp, 
MKTAG(
'R', 
'I', 
'F', 
'F'));
 
   98         bytestream_put_le32(&bufp, 0); 
 
   99         bytestream_put_le32(&bufp, 
MKTAG(
'W', 
'E', 
'B', 
'P'));
 
  100         writing_webp_header  = 1;
 
  101         w->wrote_webp_header = 1;
 
  102         if (
w->frame_count > 1)  
 
  106     if (
w->frame_count == 1) {
 
  113             bytestream_put_le32(&bufp, 
MKTAG(
'V', 
'P', 
'8', 
'X'));
 
  114             bytestream_put_le32(&bufp, 10);
 
  115             bytestream_put_byte(&bufp, 
flags);
 
  116             bytestream_put_le24(&bufp, 0);
 
  121             bytestream_put_le32(&bufp, 
MKTAG(
'A', 
'N', 
'I', 
'M'));
 
  122             bytestream_put_le32(&bufp, 6);
 
  123             bytestream_put_le32(&bufp, 0xFFFFFFFF);
 
  124             bytestream_put_le16(&bufp, 
w->loop);
 
  128     if (
w->frame_count > trailer) {
 
  129         bytestream_put_le32(&bufp, 
MKTAG(
'A', 
'N', 
'M', 
'F'));
 
  130         bytestream_put_le32(&bufp, 16 + 
w->last_pkt->size - 
skip);
 
  131         bytestream_put_le24(&bufp, 0);
 
  132         bytestream_put_le24(&bufp, 0);
 
  136             bytestream_put_le24(&bufp, 
pts - 
w->last_pkt->pts);
 
  138             bytestream_put_le24(&bufp, 
w->last_pkt->duration);
 
  139         bytestream_put_byte(&bufp, 0);
 
  141     if (trailer && writing_webp_header)
 
  142         AV_WL32(buf + 4, bufp - (buf + 8) + 
w->last_pkt->size - 
skip);
 
  147     return trailer && writing_webp_header;
 
  160     w->using_webp_anim_encoder |= 
ret;
 
  162     if (
w->using_webp_anim_encoder) {
 
  164         w->wrote_webp_header = 1;  
 
  181     if (
w->using_webp_anim_encoder) {
 
  204 #define OFFSET(x) offsetof(WebpContext, x) 
  205 #define ENC AV_OPT_FLAG_ENCODING_PARAM 
  207     { 
"loop", 
"Number of times to loop the output: 0 - infinite loop", 
OFFSET(
loop),
 
  221     .p.extensions   = 
"webp",
 
  
void av_packet_unref(AVPacket *pkt)
Wipe the packet.
int using_webp_anim_encoder
#define FF_OFMT_FLAG_ONLY_DEFAULT_CODECS
If this flag is set, then the only permitted audio/video/subtitle codec ids are AVOutputFormat....
void avio_wl16(AVIOContext *s, unsigned int val)
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
static const AVOption options[]
AVCodecParameters * codecpar
Codec parameters associated with this stream.
#define LIBAVUTIL_VERSION_INT
Describe the class of an AVClass context structure.
const char * av_default_item_name(void *ptr)
Return the context name.
int av_packet_ref(AVPacket *dst, const AVPacket *src)
Setup a new reference to the data described by a given packet.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
static int is_animated_webp_packet(AVPacket *pkt)
#define AV_NOPTS_VALUE
Undefined timestamp value.
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
void avio_wl32(AVIOContext *s, unsigned int val)
static const AVClass webp_muxer_class
static int64_t filesize(AVIOContext *pb)
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
static int flush(AVFormatContext *s, int trailer, int64_t pts)
Returns 1 if it has written a RIFF header with a correct length field.
static int webp_write_packet(AVFormatContext *s, AVPacket *pkt)
#define FF_OFMT_FLAG_MAX_ONE_OF_EACH
If this flag is set, it indicates that for each codec type whose corresponding default codec (i....
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_RL32
@ AV_OPT_TYPE_INT
Underlying C type is int.
IDirect3DDxgiInterfaceAccess _COM_Outptr_ void ** p
const FFOutputFormat ff_webp_muxer
AVPacket * pkt
Used to hold temporary packets for the generic demuxing code.
This structure stores compressed data.
static int webp_init(AVFormatContext *s)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
#define MKTAG(a, b, c, d)
static void BS_FUNC() skip(BSCTX *bc, unsigned int n)
Skip n bits in the buffer.
static int webp_write_trailer(AVFormatContext *s)