Merge commit 'f9cc6883a4e5cf72cbfa21d17e1908a2a432f6bd'

* commit 'f9cc6883a4e5cf72cbfa21d17e1908a2a432f6bd':
  mp3enc: add an option for disabling the Xing frame.

Conflicts:
	doc/muxers.texi
	libavformat/mp3enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-01-17 15:23:11 +01:00
commit 5049b6a1fe
2 changed files with 8 additions and 4 deletions

View File

@ -544,9 +544,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
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
contains the number of frames in the file. It is useful for computing duration
of VBR files.
The muxer may also write a Xing frame at the beginning, which contains the
number of frames in the file. It is useful for computing duration 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
are supplied to the muxer in form of a video stream with a single packet. There

View File

@ -85,6 +85,7 @@ typedef struct MP3Context {
ID3v2EncContext id3;
int id3v2_version;
int write_id3v1;
int write_xing;
/* xing header */
int64_t xing_offset;
@ -125,7 +126,7 @@ static int mp3_write_xing(AVFormatContext *s)
int needed;
const char *vendor = (codec->flags & CODEC_FLAG_BITEXACT) ? "Lavf" : LIBAVFORMAT_IDENT;
if (!s->pb->seekable)
if (!s->pb->seekable || !mp3->write_xing)
return 0;
for (i = 0; i < FF_ARRAY_ELEMS(avpriv_mpa_freq_tab); i++) {
@ -396,6 +397,8 @@ static const AVOption options[] = {
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.",
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 },
};