- put_buffer(&s->pb, buf, size);
- put_flush_packet(&s->pb);
+ DVMuxContext *c = s->priv_data;
+
+ if (stream_index == c->vst)
+ dv_assemble_frame(c, buf, NULL, 0);
+ else
+ dv_assemble_frame(c, NULL, buf, size);
+
+ if (c->has_audio && c->has_video) {
+ put_buffer(&s->pb, &c->frame_buf[0], c->sys->frame_size);
+ put_flush_packet(&s->pb);
+ }
+