*/
#include "libavutil/intreadwrite.h"
+#include "libavutil/intfloat_readwrite.h"
#include "avformat.h"
#include "ffm.h"
fill_size = ffm->packet_end - ffm->packet_ptr;
memset(ffm->packet_ptr, 0, fill_size);
- if (url_ftell(pb) % ffm->packet_size)
+ if (avio_tell(pb) % ffm->packet_size)
av_abort();
/* put header */
h |= 0x8000;
avio_wb16(pb, h);
avio_write(pb, ffm->packet, ffm->packet_end - ffm->packet);
- put_flush_packet(pb);
+ avio_flush(pb);
/* prepare next packet */
ffm->frame_offset = 0; /* no key frame */
avio_wb32(pb, codec->codec_id);
avio_w8(pb, codec->codec_type);
avio_wb32(pb, codec->bit_rate);
- avio_wb32(pb, st->quality);
avio_wb32(pb, codec->flags);
avio_wb32(pb, codec->flags2);
avio_wb32(pb, codec->debug);
}
/* flush until end of block reached */
- while ((url_ftell(pb) % ffm->packet_size) != 0)
+ while ((avio_tell(pb) % ffm->packet_size) != 0)
avio_w8(pb, 0);
- put_flush_packet(pb);
+ avio_flush(pb);
/* init packet mux */
ffm->packet_ptr = ffm->packet;
if (ffm->packet_ptr > ffm->packet)
flush_packet(s);
- put_flush_packet(pb);
+ avio_flush(pb);
return 0;
}
AVOutputFormat ff_ffm_muxer = {
- "ffm",
- NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"),
- "",
- "ffm",
- sizeof(FFMContext),
- /* not really used */
- CODEC_ID_MP2,
- CODEC_ID_MPEG1VIDEO,
- ffm_write_header,
- ffm_write_packet,
- ffm_write_trailer,
+ .name = "ffm",
+ .long_name = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"),
+ .mime_type = "",
+ .extensions = "ffm",
+ .priv_data_size = sizeof(FFMContext),
+ .audio_codec = CODEC_ID_MP2,
+ .video_codec = CODEC_ID_MPEG1VIDEO,
+ .write_header = ffm_write_header,
+ .write_packet = ffm_write_packet,
+ .write_trailer = ffm_write_trailer,
};