You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
avformat/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 Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
@@ -30,7 +30,7 @@
|
|||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
|
||||||
#define APE_TAG_FLAG_CONTAINS_HEADER (1 << 31)
|
#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_HEADER (1 << 29)
|
||||||
#define APE_TAG_FLAG_IS_BINARY (1 << 1)
|
#define APE_TAG_FLAG_IS_BINARY (1 << 1)
|
||||||
|
|
||||||
@@ -189,8 +189,7 @@ int ff_ape_write_tag(AVFormatContext *s)
|
|||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
// flags
|
// flags
|
||||||
avio_wl32(dyn_bc, APE_TAG_FLAG_CONTAINS_HEADER | APE_TAG_FLAG_CONTAINS_FOOTER |
|
avio_wl32(dyn_bc, APE_TAG_FLAG_CONTAINS_HEADER | APE_TAG_FLAG_IS_HEADER);
|
||||||
APE_TAG_FLAG_IS_HEADER);
|
|
||||||
ffio_fill(dyn_bc, 0, 8); // reserved
|
ffio_fill(dyn_bc, 0, 8); // reserved
|
||||||
|
|
||||||
ff_standardize_creation_time(s);
|
ff_standardize_creation_time(s);
|
||||||
@@ -232,7 +231,7 @@ int ff_ape_write_tag(AVFormatContext *s)
|
|||||||
avio_wl32(s->pb, count); // tag count
|
avio_wl32(s->pb, count); // tag count
|
||||||
|
|
||||||
// flags
|
// 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
|
ffio_fill(s->pb, 0, 8); // reserved
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
@@ -1,3 +1,3 @@
|
|||||||
f2721d06704ac43d89fdd25835b43598 *./tests/data/lavf/lavf.tta
|
d86c5cccb2554143d34d1786ab460a31 *./tests/data/lavf/lavf.tta
|
||||||
43200 ./tests/data/lavf/lavf.tta
|
43200 ./tests/data/lavf/lavf.tta
|
||||||
./tests/data/lavf/lavf.tta CRC=0x3a1da17e
|
./tests/data/lavf/lavf.tta CRC=0x3a1da17e
|
||||||
|
Reference in New Issue
Block a user