mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
mp3enc: add an option for disabling the Xing frame.
This commit is contained in:
parent
045654f422
commit
f9cc6883a4
@ -437,9 +437,10 @@ optionally an ID3v1 tag at the end. ID3v2.3 and ID3v2.4 are supported, the
|
|||||||
@code{id3v2_version} option controls which one is used. The legacy ID3v1 tag is
|
@code{id3v2_version} option controls which one is used. The legacy ID3v1 tag is
|
||||||
not written by default, but may be enabled with the @code{write_id3v1} option.
|
not written by default, but may be enabled with the @code{write_id3v1} option.
|
||||||
|
|
||||||
For seekable output the muxer also writes a Xing frame at the beginning, which
|
The muxer may also write a Xing frame at the beginning, which contains the
|
||||||
contains the number of frames in the file. It is useful for computing duration
|
number of frames in the file. It is useful for computing duration of VBR files.
|
||||||
of VBR files.
|
The Xing frame is written if the output stream is seekable and if the
|
||||||
|
@code{write_xing} option is set to 1 (the default).
|
||||||
|
|
||||||
The muxer supports writing ID3v2 attached pictures (APIC frames). The pictures
|
The muxer supports writing ID3v2 attached pictures (APIC frames). The pictures
|
||||||
are supplied to the muxer in form of a video stream with a single packet. There
|
are supplied to the muxer in form of a video stream with a single packet. There
|
||||||
|
@ -84,6 +84,7 @@ typedef struct MP3Context {
|
|||||||
ID3v2EncContext id3;
|
ID3v2EncContext id3;
|
||||||
int id3v2_version;
|
int id3v2_version;
|
||||||
int write_id3v1;
|
int write_id3v1;
|
||||||
|
int write_xing;
|
||||||
|
|
||||||
/* xing header */
|
/* xing header */
|
||||||
int64_t xing_offset;
|
int64_t xing_offset;
|
||||||
@ -121,7 +122,7 @@ static void mp3_write_xing(AVFormatContext *s)
|
|||||||
int xing_offset;
|
int xing_offset;
|
||||||
int ver = 0;
|
int ver = 0;
|
||||||
|
|
||||||
if (!s->pb->seekable)
|
if (!s->pb->seekable || !mp3->write_xing)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (i = 0; i < FF_ARRAY_ELEMS(avpriv_mpa_freq_tab); i++) {
|
for (i = 0; i < FF_ARRAY_ELEMS(avpriv_mpa_freq_tab); i++) {
|
||||||
@ -321,6 +322,8 @@ static const AVOption options[] = {
|
|||||||
offsetof(MP3Context, id3v2_version), AV_OPT_TYPE_INT, {.i64 = 4}, 3, 4, AV_OPT_FLAG_ENCODING_PARAM},
|
offsetof(MP3Context, id3v2_version), AV_OPT_TYPE_INT, {.i64 = 4}, 3, 4, AV_OPT_FLAG_ENCODING_PARAM},
|
||||||
{ "write_id3v1", "Enable ID3v1 writing. ID3v1 tags are written in UTF-8 which may not be supported by most software.",
|
{ "write_id3v1", "Enable ID3v1 writing. ID3v1 tags are written in UTF-8 which may not be supported by most software.",
|
||||||
offsetof(MP3Context, write_id3v1), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
|
offsetof(MP3Context, write_id3v1), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
|
||||||
|
{ "write_xing", "Write the Xing header containing file duration.",
|
||||||
|
offsetof(MP3Context, write_xing), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
|
||||||
{ NULL },
|
{ NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user