• Home
  • Raw
  • Download

Lines Matching refs:apng

83     APNGMuxContext *apng = format_context->priv_data;  in apng_write_header()  local
94 if (apng->last_delay.num > USHRT_MAX || apng->last_delay.den > USHRT_MAX) { in apng_write_header()
95 av_reduce(&apng->last_delay.num, &apng->last_delay.den, in apng_write_header()
96 apng->last_delay.num, apng->last_delay.den, USHRT_MAX); in apng_write_header()
99apng->last_delay.num, apng->last_delay.den, (double)apng->last_delay.num / apng->last_delay.den); in apng_write_header()
106 apng->extra_data = av_mallocz(par->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); in apng_write_header()
107 if (!apng->extra_data) in apng_write_header()
109 apng->extra_data_size = par->extradata_size; in apng_write_header()
110 memcpy(apng->extra_data, par->extradata, par->extradata_size); in apng_write_header()
118 APNGMuxContext *apng = format_context->priv_data; in flush_packet() local
124 av_assert0(apng->prev_packet); in flush_packet()
126 …side_data = av_packet_get_side_data(apng->prev_packet, AV_PKT_DATA_NEW_EXTRADATA, &side_data_size); in flush_packet()
129 av_freep(&apng->extra_data); in flush_packet()
130 apng->extra_data = av_mallocz(side_data_size + AV_INPUT_BUFFER_PADDING_SIZE); in flush_packet()
131 if (!apng->extra_data) in flush_packet()
133 apng->extra_data_size = side_data_size; in flush_packet()
134 memcpy(apng->extra_data, side_data, apng->extra_data_size); in flush_packet()
137 if (apng->frame_number == 0 && !packet) { in flush_packet()
144 …existing_acTL_chunk = apng_find_chunk(MKBETAG('a', 'c', 'T', 'L'), apng->extra_data, apng->extra_d… in flush_packet()
147 avio_write(io_context, apng->extra_data, existing_acTL_chunk - apng->extra_data); in flush_packet()
148 …avio_write(io_context, chunk_after_acTL, apng->extra_data + apng->extra_data_size - chunk_after_ac… in flush_packet()
150 avio_write(io_context, apng->extra_data, apng->extra_data_size); in flush_packet()
154 …ing_fcTL_chunk = apng_find_chunk(MKBETAG('f', 'c', 'T', 'L'), apng->prev_packet->data, apng->prev_… in flush_packet()
157 … avio_write(io_context, apng->prev_packet->data, existing_fcTL_chunk - apng->prev_packet->data); in flush_packet()
158 …avio_write(io_context, chunk_after_fcTL, apng->prev_packet->data + apng->prev_packet->size - chunk… in flush_packet()
160 avio_write(io_context, apng->prev_packet->data, apng->prev_packet->size); in flush_packet()
165 if (apng->frame_number == 0) { in flush_packet()
169 avio_write(io_context, apng->extra_data, apng->extra_data_size); in flush_packet()
171 …isting_acTL_chunk = apng_find_chunk(MKBETAG('a', 'c', 'T', 'L'), apng->extra_data, apng->extra_dat… in flush_packet()
175 apng->acTL_offset = avio_tell(io_context); in flush_packet()
177 AV_WB32(buf + 4, apng->plays); in flush_packet()
182 …ing_fcTL_chunk = apng_find_chunk(MKBETAG('f', 'c', 'T', 'L'), apng->prev_packet->data, apng->prev_… in flush_packet()
192 … int64_t delay_num_raw = (packet->dts - apng->prev_packet->dts) * codec_stream->time_base.num; in flush_packet()
195 !apng->framerate_warned) { in flush_packet()
198 apng->framerate_warned = 1; in flush_packet()
200 } else if (apng->last_delay.num > 0) { in flush_packet()
201 delay = apng->last_delay; in flush_packet()
203 delay = apng->prev_delay; in flush_packet()
211 apng->prev_delay = delay; in flush_packet()
215 avio_write(io_context, apng->prev_packet->data, apng->prev_packet->size); in flush_packet()
217 ++apng->frame_number; in flush_packet()
219 av_packet_unref(apng->prev_packet); in flush_packet()
221 av_packet_ref(apng->prev_packet, packet); in flush_packet()
227 APNGMuxContext *apng = format_context->priv_data; in apng_write_packet() local
230 if (!apng->prev_packet) { in apng_write_packet()
231 apng->prev_packet = av_packet_alloc(); in apng_write_packet()
232 if (!apng->prev_packet) in apng_write_packet()
235 av_packet_ref(apng->prev_packet, packet); in apng_write_packet()
247 APNGMuxContext *apng = format_context->priv_data; in apng_write_trailer() local
252 if (apng->prev_packet) { in apng_write_trailer()
260 if (apng->acTL_offset && (io_context->seekable & AVIO_SEEKABLE_NORMAL)) { in apng_write_trailer()
261 avio_seek(io_context, apng->acTL_offset, SEEK_SET); in apng_write_trailer()
263 AV_WB32(buf, apng->frame_number); in apng_write_trailer()
264 AV_WB32(buf + 4, apng->plays); in apng_write_trailer()
273 APNGMuxContext *apng = s->priv_data; in apng_deinit() local
275 av_packet_free(&apng->prev_packet); in apng_deinit()
276 av_freep(&apng->extra_data); in apng_deinit()
277 apng->extra_data_size = 0; in apng_deinit()