Lines Matching defs:gif
30 #include "libavcodec/gif.h"
84 static int gif_get_delay(GIFContext *gif, AVPacket *prev, AVPacket *new)
87 gif->duration = av_clip_uint16(new->pts - prev->pts);
88 else if (!new && gif->last_delay >= 0)
89 gif->duration = gif->last_delay;
91 return gif->duration;
96 GIFContext *gif = s->priv_data;
98 AVPacket *pkt = gif->prev_pkt;
100 if (!gif->prev_pkt) {
101 gif->prev_pkt = av_packet_alloc();
102 if (!gif->prev_pkt)
104 return av_packet_ref(gif->prev_pkt, new_pkt);
107 gif->last_pos = avio_tell(pb);
109 gif->have_end = pkt->data[pkt->size - 1] == GIF_TRAILER;
111 if (!gif->last_pos) {
133 if (gif->loop >= 0) {
140 avio_wl16(pb, (uint16_t)gif->loop);
147 avio_wl16(pb, gif_get_delay(gif, pkt, new_pkt));
157 avio_wl16(pb, gif_get_delay(gif, pkt, new_pkt));
164 av_packet_unref(gif->prev_pkt);
166 return av_packet_ref(gif->prev_pkt, new_pkt);
173 GIFContext *gif = s->priv_data;
176 if (!gif->prev_pkt)
181 if (!gif->have_end)
183 av_packet_free(&gif->prev_pkt);
206 .name = "gif",
208 .mime_type = "image/gif",
209 .extensions = "gif",