mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-27 05:20:48 +00:00
mp3enc: move mp3_update_xing() down
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
f276a490f0
commit
197bbcf44c
@ -255,32 +255,6 @@ static void mp3_xing_add_frame(MP3Context *mp3, AVPacket *pkt)
|
||||
}
|
||||
}
|
||||
|
||||
static void mp3_update_xing(AVFormatContext *s)
|
||||
{
|
||||
MP3Context *mp3 = s->priv_data;
|
||||
int i;
|
||||
|
||||
/* replace "Xing" identification string with "Info" for CBR files. */
|
||||
if (!mp3->has_variable_bitrate) {
|
||||
avio_seek(s->pb, mp3->xing_offset, SEEK_SET);
|
||||
ffio_wfourcc(s->pb, "Info");
|
||||
}
|
||||
|
||||
avio_seek(s->pb, mp3->xing_offset + 8, SEEK_SET);
|
||||
avio_wb32(s->pb, mp3->frames);
|
||||
avio_wb32(s->pb, mp3->size);
|
||||
|
||||
avio_w8(s->pb, 0); // first toc entry has to be zero.
|
||||
|
||||
for (i = 1; i < XING_TOC_SIZE; ++i) {
|
||||
int j = i * mp3->pos / XING_TOC_SIZE;
|
||||
int seek_point = 256LL * mp3->bag[j] / mp3->size;
|
||||
avio_w8(s->pb, FFMIN(seek_point, 255));
|
||||
}
|
||||
|
||||
avio_seek(s->pb, 0, SEEK_END);
|
||||
}
|
||||
|
||||
static int mp3_write_audio_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
{
|
||||
MP3Context *mp3 = s->priv_data;
|
||||
@ -341,6 +315,32 @@ static int mp3_queue_flush(AVFormatContext *s)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void mp3_update_xing(AVFormatContext *s)
|
||||
{
|
||||
MP3Context *mp3 = s->priv_data;
|
||||
int i;
|
||||
|
||||
/* replace "Xing" identification string with "Info" for CBR files. */
|
||||
if (!mp3->has_variable_bitrate) {
|
||||
avio_seek(s->pb, mp3->xing_offset, SEEK_SET);
|
||||
ffio_wfourcc(s->pb, "Info");
|
||||
}
|
||||
|
||||
avio_seek(s->pb, mp3->xing_offset + 8, SEEK_SET);
|
||||
avio_wb32(s->pb, mp3->frames);
|
||||
avio_wb32(s->pb, mp3->size);
|
||||
|
||||
avio_w8(s->pb, 0); // first toc entry has to be zero.
|
||||
|
||||
for (i = 1; i < XING_TOC_SIZE; ++i) {
|
||||
int j = i * mp3->pos / XING_TOC_SIZE;
|
||||
int seek_point = 256LL * mp3->bag[j] / mp3->size;
|
||||
avio_w8(s->pb, FFMIN(seek_point, 255));
|
||||
}
|
||||
|
||||
avio_seek(s->pb, 0, SEEK_END);
|
||||
}
|
||||
|
||||
static int mp2_write_trailer(struct AVFormatContext *s)
|
||||
{
|
||||
uint8_t buf[ID3v1_TAG_SIZE];
|
||||
|
Loading…
Reference in New Issue
Block a user