summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-02-10 20:24:26 -0300
committerAnton Khirnov <anton@khirnov.net>2017-02-25 09:57:43 +0100
commit3f258f5ee05c9da05f61447b802ae3e39629f44b (patch)
tree5894b8676dd71248aa0c19c6d49f49e8822b5bf7 /libavformat
parentb2788fe9347c02b1355574f3d28d60bfe1250ea7 (diff)
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_Flags Signed-off-by: James Almer <jamrial@gmail.com> CC: libav-stable@libav.org Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/apetag.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libavformat/apetag.c b/libavformat/apetag.c
index 05430dd9bc..93a4fb3430 100644
--- a/libavformat/apetag.c
+++ b/libavformat/apetag.c
@@ -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