Commit 3f258f5e authored by James Almer's avatar James Almer Committed by Anton Khirnov

apetag: fix flag value to signal footer presence

According to the spec[1], a value of 0 means the footer is present and a value
of 1 means it's absent, the exact opposite of header presence flag where 1
means present and 0 absent.
The reason for this is compatibility with APEv1 tags, where there's no header,
footer presence was mandatory for all files, and the flags field was a zeroed
reserved field.

[1] http://wiki.hydrogenaud.io/index.php?title=Ape_Tags_FlagsSigned-off-by: 's avatarJames Almer <jamrial@gmail.com>

CC: libav-stable@libav.org
Signed-off-by: 's avatarAnton Khirnov <anton@khirnov.net>
parent b2788fe9
......@@ -32,7 +32,7 @@
#define APE_TAG_VERSION 2000
#define APE_TAG_FOOTER_BYTES 32
#define APE_TAG_FLAG_CONTAINS_HEADER (1 << 31)
#define APE_TAG_FLAG_CONTAINS_FOOTER (1 << 30)
#define APE_TAG_FLAG_LACKS_FOOTER (1 << 30)
#define APE_TAG_FLAG_IS_HEADER (1 << 29)
#define APE_TAG_FLAG_IS_BINARY (1 << 1)
......@@ -194,8 +194,7 @@ int ff_ape_write_tag(AVFormatContext *s)
avio_wl32(s->pb, 0); // reserve space for tag count
// flags
avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER | APE_TAG_FLAG_CONTAINS_FOOTER |
APE_TAG_FLAG_IS_HEADER);
avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER | APE_TAG_FLAG_IS_HEADER);
ffio_fill(s->pb, 0, 8); // reserved
while ((e = av_dict_get(s->metadata, "", e, AV_DICT_IGNORE_SUFFIX))) {
......@@ -217,7 +216,7 @@ int ff_ape_write_tag(AVFormatContext *s)
avio_wl32(s->pb, count); // tag count
// flags
avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER | APE_TAG_FLAG_CONTAINS_FOOTER);
avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER);
ffio_fill(s->pb, 0, 8); // reserved
// update values in the header
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment