Lines Matching defs:amv
95 AMVContext *amv = s->priv_data;
99 amv->last_stream = -1;
127 amv->us_per_frame = av_rescale(AV_TIME_BASE, vst->time_base.num, vst->time_base.den);
128 amv->aframe_size = av_rescale(ast->codecpar->sample_rate, amv->us_per_frame, AV_TIME_BASE);
129 amv->ablock_align = 8 + (FFALIGN(amv->aframe_size, 2) / 2);
131 av_log(s, AV_LOG_TRACE, "us_per_frame = %d\n", amv->us_per_frame);
132 av_log(s, AV_LOG_TRACE, "aframe_size = %d\n", amv->aframe_size);
133 av_log(s, AV_LOG_TRACE, "ablock_align = %d\n", amv->ablock_align);
140 if (amv->us_per_frame < 15873) {
154 if (par->frame_size != amv->aframe_size) {
156 par->frame_size, amv->aframe_size);
160 if (par->block_align != amv->ablock_align) {
162 par->block_align, amv->ablock_align);
167 av_log(s, AV_LOG_ERROR, "Try -block_size %d\n", amv->aframe_size);
171 if (ast->codecpar->sample_rate % amv->aframe_size) {
179 if (aus != amv->us_per_frame) {
186 amv->apad = ffformatcontext(s)->pkt;
187 if ((ret = av_new_packet(amv->apad, amv->ablock_align)) < 0) {
191 amv->apad->stream_index = AMV_STREAM_AUDIO;
192 memset(amv->apad->data, 0, amv->ablock_align);
193 AV_WL32(amv->apad->data + 4, amv->aframe_size);
195 amv->vpad = av_packet_alloc();
196 if (!amv->vpad) {
199 amv->vpad->stream_index = AMV_STREAM_VIDEO;
200 amv->vpad->duration = 1;
206 AMVContext *amv = s->priv_data;
208 av_packet_free(&amv->vpad);
262 AMVContext *amv = s->priv_data;
269 amv->riff_start = amv_start_tag(pb, "RIFF");
277 AV_WL32(amvh + 0, amv->us_per_frame);
286 amv->offset_duration = avio_tell(pb) - 4;
292 amv->movi_list = amv_start_tag(pb, "LIST");
299 AMVContext *amv = s->priv_data;
308 if (pkt->stream_index == AMV_STREAM_AUDIO && pkt->size != amv->ablock_align) {
311 pkt->size, amv->ablock_align);
317 amv->lastpts[pkt->stream_index] += pkt->duration;
318 amv->last_stream = pkt->stream_index;
324 AMVContext *amv = s->priv_data;
327 if (stream_index != amv->last_stream)
332 return amv_write_packet_internal(s, amv->vpad);
334 return amv_write_packet_internal(s, amv->apad);
343 AMVContext *amv = s->priv_data;
355 av_packet_unref(amv->vpad);
356 if ((ret = av_packet_ref(amv->vpad, pkt)) < 0)
365 AMVContext *amv = s->priv_data;
372 if (amv->last_stream == AMV_STREAM_VIDEO) {
373 if ((ret = amv_write_packet_internal(s, amv->apad)) < 0)
377 amv_end_tag(s->pb, amv->movi_list);
378 amv_end_tag(s->pb, amv->riff_start);
383 if ((ret = avio_seek(s->pb, amv->offset_duration, SEEK_SET)) < 0)
388 av_rescale_q(amv->lastpts[AMV_STREAM_VIDEO], vst->time_base, AV_TIME_BASE_Q),
389 av_rescale_q(amv->lastpts[AMV_STREAM_AUDIO], ast->time_base, AV_TIME_BASE_Q)
405 .name = "amv",
407 .mime_type = "video/amv",
408 .extensions = "amv",