Replace FOURC('a', 'b', 'c', 'd') with FOURCC("abcd")
Test: compare disassembly before/after
Change-Id: I8f9c75d19f2dcd0f0f31a082c0e98cd7eb6655a4
diff --git a/media/extractors/mp4/ItemTable.cpp b/media/extractors/mp4/ItemTable.cpp
index 55a0c47..7816473 100644
--- a/media/extractors/mp4/ItemTable.cpp
+++ b/media/extractors/mp4/ItemTable.cpp
@@ -48,7 +48,7 @@
offset(0), size(0), nextTileIndex(0) {}
bool isGrid() const {
- return type == FOURCC('g', 'r', 'i', 'd');
+ return type == FOURCC("grid");
}
status_t getNextTileItemId(uint32_t *nextTileItemId, bool reset) {
@@ -223,7 +223,7 @@
struct PitmBox : public FullBox {
PitmBox(DataSourceHelper *source) :
- FullBox(source, FOURCC('p', 'i', 't', 'm')) {}
+ FullBox(source, FOURCC("pitm")) {}
status_t parse(off64_t offset, size_t size, uint32_t *primaryItemId);
};
@@ -303,7 +303,7 @@
struct IlocBox : public FullBox {
IlocBox(DataSourceHelper *source, KeyedVector<uint32_t, ItemLoc> *itemLocs) :
- FullBox(source, FOURCC('i', 'l', 'o', 'c')),
+ FullBox(source, FOURCC("iloc")),
mItemLocs(itemLocs), mHasConstructMethod1(false) {}
status_t parse(off64_t offset, size_t size);
@@ -497,7 +497,7 @@
ALOGV("attach reference type 0x%x to item id %d)", type(), mItemId);
switch(type()) {
- case FOURCC('d', 'i', 'm', 'g'): {
+ case FOURCC("dimg"): {
ssize_t itemIndex = itemIdToItemMap.indexOfKey(mItemId);
// ignore non-image items
@@ -525,7 +525,7 @@
}
break;
}
- case FOURCC('t', 'h', 'm', 'b'): {
+ case FOURCC("thmb"): {
ssize_t itemIndex = itemIdToItemMap.indexOfKey(mItemId);
// ignore non-image items
@@ -554,7 +554,7 @@
}
break;
}
- case FOURCC('c', 'd', 's', 'c'): {
+ case FOURCC("cdsc"): {
ssize_t itemIndex = itemIdToExifMap.indexOfKey(mItemId);
// ignore non-exif block items
@@ -575,7 +575,7 @@
}
break;
}
- case FOURCC('a', 'u', 'x', 'l'): {
+ case FOURCC("auxl"): {
ssize_t itemIndex = itemIdToItemMap.indexOfKey(mItemId);
// ignore non-image items
@@ -628,7 +628,7 @@
struct IrefBox : public FullBox {
IrefBox(DataSourceHelper *source, Vector<sp<ItemReference> > *itemRefs) :
- FullBox(source, FOURCC('i', 'r', 'e', 'f')), mRefIdSize(0), mItemRefs(itemRefs) {}
+ FullBox(source, FOURCC("iref")), mRefIdSize(0), mItemRefs(itemRefs) {}
status_t parse(off64_t offset, size_t size);
@@ -690,7 +690,7 @@
struct IspeBox : public FullBox, public ItemProperty {
IspeBox(DataSourceHelper *source) :
- FullBox(source, FOURCC('i', 's', 'p', 'e')), mWidth(0), mHeight(0) {}
+ FullBox(source, FOURCC("ispe")), mWidth(0), mHeight(0) {}
status_t parse(off64_t offset, size_t size) override;
@@ -726,7 +726,7 @@
struct HvccBox : public Box, public ItemProperty {
HvccBox(DataSourceHelper *source) :
- Box(source, FOURCC('h', 'v', 'c', 'C')) {}
+ Box(source, FOURCC("hvcC")) {}
status_t parse(off64_t offset, size_t size) override;
@@ -759,7 +759,7 @@
struct IrotBox : public Box, public ItemProperty {
IrotBox(DataSourceHelper *source) :
- Box(source, FOURCC('i', 'r', 'o', 't')), mAngle(0) {}
+ Box(source, FOURCC("irot")), mAngle(0) {}
status_t parse(off64_t offset, size_t size) override;
@@ -788,7 +788,7 @@
struct ColrBox : public Box, public ItemProperty {
ColrBox(DataSourceHelper *source) :
- Box(source, FOURCC('c', 'o', 'l', 'r')) {}
+ Box(source, FOURCC("colr")) {}
status_t parse(off64_t offset, size_t size) override;
@@ -812,11 +812,11 @@
}
offset += 4;
size -= 4;
- if (colour_type == FOURCC('n', 'c', 'l', 'x')) {
+ if (colour_type == FOURCC("nclx")) {
return OK;
}
- if ((colour_type != FOURCC('r', 'I', 'C', 'C')) &&
- (colour_type != FOURCC('p', 'r', 'o', 'f'))) {
+ if ((colour_type != FOURCC("rICC")) &&
+ (colour_type != FOURCC("prof"))) {
return ERROR_MALFORMED;
}
@@ -836,7 +836,7 @@
struct IpmaBox : public FullBox {
IpmaBox(DataSourceHelper *source, Vector<AssociationEntry> *associations) :
- FullBox(source, FOURCC('i', 'p', 'm', 'a')), mAssociations(associations) {}
+ FullBox(source, FOURCC("ipma")), mAssociations(associations) {}
status_t parse(off64_t offset, size_t size);
private:
@@ -910,7 +910,7 @@
struct IpcoBox : public Box {
IpcoBox(DataSourceHelper *source, Vector<sp<ItemProperty> > *properties) :
- Box(source, FOURCC('i', 'p', 'c', 'o')), mItemProperties(properties) {}
+ Box(source, FOURCC("ipco")), mItemProperties(properties) {}
status_t parse(off64_t offset, size_t size);
protected:
@@ -930,22 +930,22 @@
status_t IpcoBox::onChunkData(uint32_t type, off64_t offset, size_t size) {
sp<ItemProperty> itemProperty;
switch(type) {
- case FOURCC('h', 'v', 'c', 'C'):
+ case FOURCC("hvcC"):
{
itemProperty = new HvccBox(source());
break;
}
- case FOURCC('i', 's', 'p', 'e'):
+ case FOURCC("ispe"):
{
itemProperty = new IspeBox(source());
break;
}
- case FOURCC('i', 'r', 'o', 't'):
+ case FOURCC("irot"):
{
itemProperty = new IrotBox(source());
break;
}
- case FOURCC('c', 'o', 'l', 'r'):
+ case FOURCC("colr"):
{
itemProperty = new ColrBox(source());
break;
@@ -969,7 +969,7 @@
IprpBox(DataSourceHelper *source,
Vector<sp<ItemProperty> > *properties,
Vector<AssociationEntry> *associations) :
- Box(source, FOURCC('i', 'p', 'r', 'p')),
+ Box(source, FOURCC("iprp")),
mProperties(properties), mAssociations(associations) {}
status_t parse(off64_t offset, size_t size);
@@ -993,12 +993,12 @@
status_t IprpBox::onChunkData(uint32_t type, off64_t offset, size_t size) {
switch(type) {
- case FOURCC('i', 'p', 'c', 'o'):
+ case FOURCC("ipco"):
{
IpcoBox ipcoBox(source(), mProperties);
return ipcoBox.parse(offset, size);
}
- case FOURCC('i', 'p', 'm', 'a'):
+ case FOURCC("ipma"):
{
IpmaBox ipmaBox(source(), mAssociations);
return ipmaBox.parse(offset, size);
@@ -1024,7 +1024,7 @@
struct InfeBox : public FullBox {
InfeBox(DataSourceHelper *source) :
- FullBox(source, FOURCC('i', 'n', 'f', 'e')) {}
+ FullBox(source, FOURCC("infe")) {}
status_t parse(off64_t offset, size_t size, ItemInfo *itemInfo);
@@ -1104,7 +1104,7 @@
}
ALOGV("item_name %s", item_name.c_str());
- if (item_type == FOURCC('m', 'i', 'm', 'e')) {
+ if (item_type == FOURCC("mime")) {
String8 content_type;
if (!parseNullTerminatedString(&offset, &size, &content_type)) {
return ERROR_MALFORMED;
@@ -1117,7 +1117,7 @@
return ERROR_MALFORMED;
}
}
- } else if (item_type == FOURCC('u', 'r', 'i', ' ')) {
+ } else if (item_type == FOURCC("uri ")) {
String8 item_uri_type;
if (!parseNullTerminatedString(&offset, &size, &item_uri_type)) {
return ERROR_MALFORMED;
@@ -1129,7 +1129,7 @@
struct IinfBox : public FullBox {
IinfBox(DataSourceHelper *source, Vector<ItemInfo> *itemInfos) :
- FullBox(source, FOURCC('i', 'i', 'n', 'f')),
+ FullBox(source, FOURCC("iinf")),
mItemInfos(itemInfos), mHasGrids(false) {}
status_t parse(off64_t offset, size_t size);
@@ -1179,7 +1179,7 @@
}
status_t IinfBox::onChunkData(uint32_t type, off64_t offset, size_t size) {
- if (type != FOURCC('i', 'n', 'f', 'e')) {
+ if (type != FOURCC("infe")) {
return OK;
}
@@ -1188,7 +1188,7 @@
status_t err = infeBox.parse(offset, size, &itemInfo);
if (err == OK) {
mItemInfos->push_back(itemInfo);
- mHasGrids |= (itemInfo.itemType == FOURCC('g', 'r', 'i', 'd'));
+ mHasGrids |= (itemInfo.itemType == FOURCC("grid"));
}
// InfeBox parse returns ERROR_UNSUPPORTED if the box if an unsupported
// version. Ignore this error as it's not fatal.
@@ -1214,31 +1214,31 @@
status_t ItemTable::parse(uint32_t type, off64_t data_offset, size_t chunk_data_size) {
switch(type) {
- case FOURCC('i', 'l', 'o', 'c'):
+ case FOURCC("iloc"):
{
return parseIlocBox(data_offset, chunk_data_size);
}
- case FOURCC('i', 'i', 'n', 'f'):
+ case FOURCC("iinf"):
{
return parseIinfBox(data_offset, chunk_data_size);
}
- case FOURCC('i', 'p', 'r', 'p'):
+ case FOURCC("iprp"):
{
return parseIprpBox(data_offset, chunk_data_size);
}
- case FOURCC('p', 'i', 't', 'm'):
+ case FOURCC("pitm"):
{
return parsePitmBox(data_offset, chunk_data_size);
}
- case FOURCC('i', 'd', 'a', 't'):
+ case FOURCC("idat"):
{
return parseIdatBox(data_offset, chunk_data_size);
}
- case FOURCC('i', 'r', 'e', 'f'):
+ case FOURCC("iref"):
{
return parseIrefBox(data_offset, chunk_data_size);
}
- case FOURCC('i', 'p', 'r', 'o'):
+ case FOURCC("ipro"):
{
ALOGW("ipro box not supported!");
break;
@@ -1355,9 +1355,9 @@
// 'grid': derived image from tiles
// 'hvc1': coded image (or tile)
// 'Exif': EXIF metadata
- if (info.itemType != FOURCC('g', 'r', 'i', 'd') &&
- info.itemType != FOURCC('h', 'v', 'c', '1') &&
- info.itemType != FOURCC('E', 'x', 'i', 'f')) {
+ if (info.itemType != FOURCC("grid") &&
+ info.itemType != FOURCC("hvc1") &&
+ info.itemType != FOURCC("Exif")) {
continue;
}
@@ -1380,7 +1380,7 @@
return ERROR_MALFORMED;
}
- if (info.itemType == FOURCC('E', 'x', 'i', 'f')) {
+ if (info.itemType == FOURCC("Exif")) {
// Only add if the Exif data is non-empty. The first 4 bytes contain
// the offset to TIFF header, which the Exif parser doesn't use.
if (size > 4) {
diff --git a/media/extractors/mp4/MPEG4Extractor.cpp b/media/extractors/mp4/MPEG4Extractor.cpp
index cc1534a..216aa78 100644
--- a/media/extractors/mp4/MPEG4Extractor.cpp
+++ b/media/extractors/mp4/MPEG4Extractor.cpp
@@ -308,42 +308,42 @@
static const char *FourCC2MIME(uint32_t fourcc) {
switch (fourcc) {
- case FOURCC('m', 'p', '4', 'a'):
+ case FOURCC("mp4a"):
return MEDIA_MIMETYPE_AUDIO_AAC;
- case FOURCC('s', 'a', 'm', 'r'):
+ case FOURCC("samr"):
return MEDIA_MIMETYPE_AUDIO_AMR_NB;
- case FOURCC('s', 'a', 'w', 'b'):
+ case FOURCC("sawb"):
return MEDIA_MIMETYPE_AUDIO_AMR_WB;
- case FOURCC('e', 'c', '-', '3'):
+ case FOURCC("ec-3"):
return MEDIA_MIMETYPE_AUDIO_EAC3;
- case FOURCC('m', 'p', '4', 'v'):
+ case FOURCC("mp4v"):
return MEDIA_MIMETYPE_VIDEO_MPEG4;
- case FOURCC('s', '2', '6', '3'):
- case FOURCC('h', '2', '6', '3'):
- case FOURCC('H', '2', '6', '3'):
+ case FOURCC("s263"):
+ case FOURCC("h263"):
+ case FOURCC("H263"):
return MEDIA_MIMETYPE_VIDEO_H263;
- case FOURCC('a', 'v', 'c', '1'):
+ case FOURCC("avc1"):
return MEDIA_MIMETYPE_VIDEO_AVC;
- case FOURCC('h', 'v', 'c', '1'):
- case FOURCC('h', 'e', 'v', '1'):
+ case FOURCC("hvc1"):
+ case FOURCC("hev1"):
return MEDIA_MIMETYPE_VIDEO_HEVC;
- case FOURCC('a', 'c', '-', '4'):
+ case FOURCC("ac-4"):
return MEDIA_MIMETYPE_AUDIO_AC4;
- case FOURCC('t', 'w', 'o', 's'):
- case FOURCC('s', 'o', 'w', 't'):
+ case FOURCC("twos"):
+ case FOURCC("sowt"):
return MEDIA_MIMETYPE_AUDIO_RAW;
- case FOURCC('a', 'l', 'a', 'c'):
+ case FOURCC("alac"):
return MEDIA_MIMETYPE_AUDIO_ALAC;
- case FOURCC('a', 'v', '0', '1'):
+ case FOURCC("av01"):
return MEDIA_MIMETYPE_VIDEO_AV1;
default:
ALOGW("Unknown fourcc: %c%c%c%c",
@@ -749,21 +749,21 @@
static bool underMetaDataPath(const Vector<uint32_t> &path) {
return path.size() >= 5
- && path[0] == FOURCC('m', 'o', 'o', 'v')
- && path[1] == FOURCC('u', 'd', 't', 'a')
- && path[2] == FOURCC('m', 'e', 't', 'a')
- && path[3] == FOURCC('i', 'l', 's', 't');
+ && path[0] == FOURCC("moov")
+ && path[1] == FOURCC("udta")
+ && path[2] == FOURCC("meta")
+ && path[3] == FOURCC("ilst");
}
static bool underQTMetaPath(const Vector<uint32_t> &path, int32_t depth) {
return path.size() >= 2
- && path[0] == FOURCC('m', 'o', 'o', 'v')
- && path[1] == FOURCC('m', 'e', 't', 'a')
+ && path[0] == FOURCC("moov")
+ && path[1] == FOURCC("meta")
&& (depth == 2
|| (depth == 3
- && (path[2] == FOURCC('h', 'd', 'l', 'r')
- || path[2] == FOURCC('i', 'l', 's', 't')
- || path[2] == FOURCC('k', 'e', 'y', 's'))));
+ && (path[2] == FOURCC("hdlr")
+ || path[2] == FOURCC("ilst")
+ || path[2] == FOURCC("keys"))));
}
// Given a time in seconds since Jan 1 1904, produce a human-readable string.
@@ -867,7 +867,7 @@
ALOGE("b/23540914");
return ERROR_MALFORMED;
}
- if (chunk_type != FOURCC('m', 'd', 'a', 't') && chunk_data_size > kMaxAtomSize) {
+ if (chunk_type != FOURCC("mdat") && chunk_data_size > kMaxAtomSize) {
char errMsg[100];
sprintf(errMsg, "%s atom has size %" PRId64, chunk, chunk_data_size);
ALOGE("%s (b/28615448)", errMsg);
@@ -875,8 +875,8 @@
return ERROR_MALFORMED;
}
- if (chunk_type != FOURCC('c', 'p', 'r', 't')
- && chunk_type != FOURCC('c', 'o', 'v', 'r')
+ if (chunk_type != FOURCC("cprt")
+ && chunk_type != FOURCC("covr")
&& mPath.size() == 5 && underMetaDataPath(mPath)) {
off64_t stop_offset = *offset + chunk_size;
*offset = data_offset;
@@ -895,40 +895,40 @@
}
switch(chunk_type) {
- case FOURCC('m', 'o', 'o', 'v'):
- case FOURCC('t', 'r', 'a', 'k'):
- case FOURCC('m', 'd', 'i', 'a'):
- case FOURCC('m', 'i', 'n', 'f'):
- case FOURCC('d', 'i', 'n', 'f'):
- case FOURCC('s', 't', 'b', 'l'):
- case FOURCC('m', 'v', 'e', 'x'):
- case FOURCC('m', 'o', 'o', 'f'):
- case FOURCC('t', 'r', 'a', 'f'):
- case FOURCC('m', 'f', 'r', 'a'):
- case FOURCC('u', 'd', 't', 'a'):
- case FOURCC('i', 'l', 's', 't'):
- case FOURCC('s', 'i', 'n', 'f'):
- case FOURCC('s', 'c', 'h', 'i'):
- case FOURCC('e', 'd', 't', 's'):
- case FOURCC('w', 'a', 'v', 'e'):
+ case FOURCC("moov"):
+ case FOURCC("trak"):
+ case FOURCC("mdia"):
+ case FOURCC("minf"):
+ case FOURCC("dinf"):
+ case FOURCC("stbl"):
+ case FOURCC("mvex"):
+ case FOURCC("moof"):
+ case FOURCC("traf"):
+ case FOURCC("mfra"):
+ case FOURCC("udta"):
+ case FOURCC("ilst"):
+ case FOURCC("sinf"):
+ case FOURCC("schi"):
+ case FOURCC("edts"):
+ case FOURCC("wave"):
{
- if (chunk_type == FOURCC('m', 'o', 'o', 'v') && depth != 0) {
+ if (chunk_type == FOURCC("moov") && depth != 0) {
ALOGE("moov: depth %d", depth);
return ERROR_MALFORMED;
}
- if (chunk_type == FOURCC('m', 'o', 'o', 'v') && mInitCheck == OK) {
+ if (chunk_type == FOURCC("moov") && mInitCheck == OK) {
ALOGE("duplicate moov");
return ERROR_MALFORMED;
}
- if (chunk_type == FOURCC('m', 'o', 'o', 'f') && !mMoofFound) {
+ if (chunk_type == FOURCC("moof") && !mMoofFound) {
// store the offset of the first segment
mMoofFound = true;
mMoofOffset = *offset;
}
- if (chunk_type == FOURCC('s', 't', 'b', 'l')) {
+ if (chunk_type == FOURCC("stbl")) {
ALOGV("sampleTable chunk is %" PRIu64 " bytes long.", chunk_size);
if (mDataSource->flags()
@@ -954,7 +954,7 @@
}
bool isTrack = false;
- if (chunk_type == FOURCC('t', 'r', 'a', 'k')) {
+ if (chunk_type == FOURCC("trak")) {
if (depth != 1) {
ALOGE("trak: depth %d", depth);
return ERROR_MALFORMED;
@@ -1049,7 +1049,7 @@
return OK;
}
- } else if (chunk_type == FOURCC('m', 'o', 'o', 'v')) {
+ } else if (chunk_type == FOURCC("moov")) {
mInitCheck = OK;
return UNKNOWN_ERROR; // Return a dummy error.
@@ -1057,7 +1057,7 @@
break;
}
- case FOURCC('s', 'c', 'h', 'm'):
+ case FOURCC("schm"):
{
*offset += chunk_size;
@@ -1072,23 +1072,23 @@
scheme_type = ntohl(scheme_type);
int32_t mode = kCryptoModeUnencrypted;
switch(scheme_type) {
- case FOURCC('c', 'b', 'c', '1'):
+ case FOURCC("cbc1"):
{
mode = kCryptoModeAesCbc;
break;
}
- case FOURCC('c', 'b', 'c', 's'):
+ case FOURCC("cbcs"):
{
mode = kCryptoModeAesCbc;
mLastTrack->subsample_encryption = true;
break;
}
- case FOURCC('c', 'e', 'n', 'c'):
+ case FOURCC("cenc"):
{
mode = kCryptoModeAesCtr;
break;
}
- case FOURCC('c', 'e', 'n', 's'):
+ case FOURCC("cens"):
{
mode = kCryptoModeAesCtr;
mLastTrack->subsample_encryption = true;
@@ -1102,7 +1102,7 @@
}
- case FOURCC('e', 'l', 's', 't'):
+ case FOURCC("elst"):
{
*offset += chunk_size;
@@ -1158,7 +1158,7 @@
break;
}
- case FOURCC('f', 'r', 'm', 'a'):
+ case FOURCC("frma"):
{
*offset += chunk_size;
@@ -1187,7 +1187,7 @@
// If format type is 'alac', it is necessary to get the parameters
// from a alac atom spreading behind the frma atom.
// See 'external/alac/ALACMagicCookieDescription.txt'.
- if (original_fourcc == FOURCC('a', 'l', 'a', 'c')) {
+ if (original_fourcc == FOURCC("alac")) {
// Store ALAC magic cookie (decoder needs it).
uint8_t alacInfo[12];
data_offset = *offset;
@@ -1197,7 +1197,7 @@
}
uint32_t size = U32_AT(&alacInfo[0]);
if ((size != ALAC_SPECIFIC_INFO_SIZE) ||
- (U32_AT(&alacInfo[4]) != FOURCC('a', 'l', 'a', 'c')) ||
+ (U32_AT(&alacInfo[4]) != FOURCC("alac")) ||
(U32_AT(&alacInfo[8]) != 0)) {
return ERROR_MALFORMED;
}
@@ -1226,7 +1226,7 @@
break;
}
- case FOURCC('t', 'e', 'n', 'c'):
+ case FOURCC("tenc"):
{
*offset += chunk_size;
@@ -1339,7 +1339,7 @@
break;
}
- case FOURCC('t', 'k', 'h', 'd'):
+ case FOURCC("tkhd"):
{
*offset += chunk_size;
@@ -1351,7 +1351,7 @@
break;
}
- case FOURCC('t', 'r', 'e', 'f'):
+ case FOURCC("tref"):
{
off64_t stop_offset = *offset + chunk_size;
*offset = data_offset;
@@ -1367,7 +1367,7 @@
break;
}
- case FOURCC('t', 'h', 'm', 'b'):
+ case FOURCC("thmb"):
{
*offset += chunk_size;
@@ -1384,7 +1384,7 @@
break;
}
- case FOURCC('p', 's', 's', 'h'):
+ case FOURCC("pssh"):
{
*offset += chunk_size;
@@ -1420,7 +1420,7 @@
break;
}
- case FOURCC('m', 'd', 'h', 'd'):
+ case FOURCC("mdhd"):
{
*offset += chunk_size;
@@ -1516,7 +1516,7 @@
break;
}
- case FOURCC('s', 't', 's', 'd'):
+ case FOURCC("stsd"):
{
uint8_t buffer[8];
if (chunk_data_size < (off64_t)sizeof(buffer)) {
@@ -1568,7 +1568,7 @@
}
break;
}
- case FOURCC('m', 'e', 't', 't'):
+ case FOURCC("mett"):
{
*offset += chunk_size;
@@ -1622,16 +1622,16 @@
break;
}
- case FOURCC('m', 'p', '4', 'a'):
- case FOURCC('e', 'n', 'c', 'a'):
- case FOURCC('s', 'a', 'm', 'r'):
- case FOURCC('s', 'a', 'w', 'b'):
- case FOURCC('t', 'w', 'o', 's'):
- case FOURCC('s', 'o', 'w', 't'):
- case FOURCC('a', 'l', 'a', 'c'):
+ case FOURCC("mp4a"):
+ case FOURCC("enca"):
+ case FOURCC("samr"):
+ case FOURCC("sawb"):
+ case FOURCC("twos"):
+ case FOURCC("sowt"):
+ case FOURCC("alac"):
{
- if (mIsQT && chunk_type == FOURCC('m', 'p', '4', 'a')
- && depth >= 1 && mPath[depth - 1] == FOURCC('w', 'a', 'v', 'e')) {
+ if (mIsQT && chunk_type == FOURCC("mp4a")
+ && depth >= 1 && mPath[depth - 1] == FOURCC("wave")) {
// Ignore mp4a embedded in QT wave atom
*offset += chunk_size;
break;
@@ -1661,7 +1661,7 @@
off64_t stop_offset = *offset + chunk_size;
*offset = data_offset + sizeof(buffer);
- if (mIsQT && chunk_type == FOURCC('m', 'p', '4', 'a')) {
+ if (mIsQT && chunk_type == FOURCC("mp4a")) {
if (version == 1) {
if (mDataSource->readAt(*offset, buffer, 16) < 16) {
return ERROR_IO;
@@ -1694,7 +1694,7 @@
}
}
- if (chunk_type != FOURCC('e', 'n', 'c', 'a')) {
+ if (chunk_type != FOURCC("enca")) {
// if the chunk type is enca, we'll get the type from the frma box later
AMediaFormat_setString(mLastTrack->meta,
AMEDIAFORMAT_KEY_MIME, FourCC2MIME(chunk_type));
@@ -1703,7 +1703,7 @@
if (!strcasecmp(MEDIA_MIMETYPE_AUDIO_RAW, FourCC2MIME(chunk_type))) {
AMediaFormat_setInt32(mLastTrack->meta,
AMEDIAFORMAT_KEY_BITS_PER_SAMPLE, sample_size);
- if (chunk_type == FOURCC('t', 'w', 'o', 's')) {
+ if (chunk_type == FOURCC("twos")) {
AMediaFormat_setInt32(mLastTrack->meta,
AMEDIAFORMAT_KEY_PCM_BIG_ENDIAN, 1);
}
@@ -1714,7 +1714,7 @@
AMediaFormat_setInt32(mLastTrack->meta, AMEDIAFORMAT_KEY_CHANNEL_COUNT, num_channels);
AMediaFormat_setInt32(mLastTrack->meta, AMEDIAFORMAT_KEY_SAMPLE_RATE, sample_rate);
- if (chunk_type == FOURCC('a', 'l', 'a', 'c')) {
+ if (chunk_type == FOURCC("alac")) {
// See 'external/alac/ALACMagicCookieDescription.txt for the detail'.
// Store ALAC magic cookie (decoder needs it).
@@ -1726,7 +1726,7 @@
}
uint32_t size = U32_AT(&alacInfo[0]);
if ((size != ALAC_SPECIFIC_INFO_SIZE) ||
- (U32_AT(&alacInfo[4]) != FOURCC('a', 'l', 'a', 'c')) ||
+ (U32_AT(&alacInfo[4]) != FOURCC("alac")) ||
(U32_AT(&alacInfo[8]) != 0)) {
return ERROR_MALFORMED;
}
@@ -1764,15 +1764,15 @@
break;
}
- case FOURCC('m', 'p', '4', 'v'):
- case FOURCC('e', 'n', 'c', 'v'):
- case FOURCC('s', '2', '6', '3'):
- case FOURCC('H', '2', '6', '3'):
- case FOURCC('h', '2', '6', '3'):
- case FOURCC('a', 'v', 'c', '1'):
- case FOURCC('h', 'v', 'c', '1'):
- case FOURCC('h', 'e', 'v', '1'):
- case FOURCC('a', 'v', '0', '1'):
+ case FOURCC("mp4v"):
+ case FOURCC("encv"):
+ case FOURCC("s263"):
+ case FOURCC("H263"):
+ case FOURCC("h263"):
+ case FOURCC("avc1"):
+ case FOURCC("hvc1"):
+ case FOURCC("hev1"):
+ case FOURCC("av01"):
{
uint8_t buffer[78];
if (chunk_data_size < (ssize_t)sizeof(buffer)) {
@@ -1802,7 +1802,7 @@
if (mLastTrack == NULL)
return ERROR_MALFORMED;
- if (chunk_type != FOURCC('e', 'n', 'c', 'v')) {
+ if (chunk_type != FOURCC("encv")) {
// if the chunk type is encv, we'll get the type from the frma box later
AMediaFormat_setString(mLastTrack->meta,
AMEDIAFORMAT_KEY_MIME, FourCC2MIME(chunk_type));
@@ -1825,8 +1825,8 @@
break;
}
- case FOURCC('s', 't', 'c', 'o'):
- case FOURCC('c', 'o', '6', '4'):
+ case FOURCC("stco"):
+ case FOURCC("co64"):
{
if ((mLastTrack == NULL) || (mLastTrack->sampleTable == NULL)) {
return ERROR_MALFORMED;
@@ -1845,7 +1845,7 @@
break;
}
- case FOURCC('s', 't', 's', 'c'):
+ case FOURCC("stsc"):
{
if ((mLastTrack == NULL) || (mLastTrack->sampleTable == NULL))
return ERROR_MALFORMED;
@@ -1863,8 +1863,8 @@
break;
}
- case FOURCC('s', 't', 's', 'z'):
- case FOURCC('s', 't', 'z', '2'):
+ case FOURCC("stsz"):
+ case FOURCC("stz2"):
{
if ((mLastTrack == NULL) || (mLastTrack->sampleTable == NULL)) {
return ERROR_MALFORMED;
@@ -1983,7 +1983,7 @@
break;
}
- case FOURCC('s', 't', 't', 's'):
+ case FOURCC("stts"):
{
if ((mLastTrack == NULL) || (mLastTrack->sampleTable == NULL))
return ERROR_MALFORMED;
@@ -2001,7 +2001,7 @@
break;
}
- case FOURCC('c', 't', 't', 's'):
+ case FOURCC("ctts"):
{
if ((mLastTrack == NULL) || (mLastTrack->sampleTable == NULL))
return ERROR_MALFORMED;
@@ -2019,7 +2019,7 @@
break;
}
- case FOURCC('s', 't', 's', 's'):
+ case FOURCC("stss"):
{
if ((mLastTrack == NULL) || (mLastTrack->sampleTable == NULL))
return ERROR_MALFORMED;
@@ -2038,7 +2038,7 @@
}
// \xA9xyz
- case FOURCC(0xA9, 'x', 'y', 'z'):
+ case FOURCC("\251xyz"):
{
*offset += chunk_size;
@@ -2088,7 +2088,7 @@
break;
}
- case FOURCC('e', 's', 'd', 's'):
+ case FOURCC("esds"):
{
*offset += chunk_size;
@@ -2118,7 +2118,7 @@
AMEDIAFORMAT_KEY_ESDS, &buffer[4], chunk_data_size - 4);
if (mPath.size() >= 2
- && mPath[mPath.size() - 2] == FOURCC('m', 'p', '4', 'a')) {
+ && mPath[mPath.size() - 2] == FOURCC("mp4a")) {
// Information from the ESDS must be relied on for proper
// setup of sample rate and channel count for MPEG4 Audio.
// The generic header appears to only contain generic
@@ -2132,7 +2132,7 @@
}
}
if (mPath.size() >= 2
- && mPath[mPath.size() - 2] == FOURCC('m', 'p', '4', 'v')) {
+ && mPath[mPath.size() - 2] == FOURCC("mp4v")) {
// Check if the video is MPEG2
ESDS esds(&buffer[4], chunk_data_size - 4);
@@ -2147,7 +2147,7 @@
break;
}
- case FOURCC('b', 't', 'r', 't'):
+ case FOURCC("btrt"):
{
*offset += chunk_size;
if (mLastTrack == NULL) {
@@ -2177,7 +2177,7 @@
break;
}
- case FOURCC('a', 'v', 'c', 'C'):
+ case FOURCC("avcC"):
{
*offset += chunk_size;
@@ -2201,7 +2201,7 @@
break;
}
- case FOURCC('h', 'v', 'c', 'C'):
+ case FOURCC("hvcC"):
{
auto buffer = heapbuffer<uint8_t>(chunk_data_size);
@@ -2225,7 +2225,7 @@
break;
}
- case FOURCC('d', '2', '6', '3'):
+ case FOURCC("d263"):
{
*offset += chunk_size;
/*
@@ -2260,7 +2260,7 @@
break;
}
- case FOURCC('m', 'e', 't', 'a'):
+ case FOURCC("meta"):
{
off64_t stop_offset = *offset + chunk_size;
*offset = data_offset;
@@ -2304,13 +2304,13 @@
break;
}
- case FOURCC('i', 'l', 'o', 'c'):
- case FOURCC('i', 'i', 'n', 'f'):
- case FOURCC('i', 'p', 'r', 'p'):
- case FOURCC('p', 'i', 't', 'm'):
- case FOURCC('i', 'd', 'a', 't'):
- case FOURCC('i', 'r', 'e', 'f'):
- case FOURCC('i', 'p', 'r', 'o'):
+ case FOURCC("iloc"):
+ case FOURCC("iinf"):
+ case FOURCC("iprp"):
+ case FOURCC("pitm"):
+ case FOURCC("idat"):
+ case FOURCC("iref"):
+ case FOURCC("ipro"):
{
if (mIsHeif) {
if (mItemTable == NULL) {
@@ -2326,9 +2326,9 @@
break;
}
- case FOURCC('m', 'e', 'a', 'n'):
- case FOURCC('n', 'a', 'm', 'e'):
- case FOURCC('d', 'a', 't', 'a'):
+ case FOURCC("mean"):
+ case FOURCC("name"):
+ case FOURCC("data"):
{
*offset += chunk_size;
@@ -2343,7 +2343,7 @@
break;
}
- case FOURCC('m', 'v', 'h', 'd'):
+ case FOURCC("mvhd"):
{
*offset += chunk_size;
@@ -2395,7 +2395,7 @@
break;
}
- case FOURCC('m', 'e', 'h', 'd'):
+ case FOURCC("mehd"):
{
*offset += chunk_size;
@@ -2440,7 +2440,7 @@
break;
}
- case FOURCC('m', 'd', 'a', 't'):
+ case FOURCC("mdat"):
{
mMdatFound = true;
@@ -2448,7 +2448,7 @@
break;
}
- case FOURCC('h', 'd', 'l', 'r'):
+ case FOURCC("hdlr"):
{
*offset += chunk_size;
@@ -2466,7 +2466,7 @@
// For the 3GPP file format, the handler-type within the 'hdlr' box
// shall be 'text'. We also want to support 'sbtl' handler type
// for a practical reason as various MPEG4 containers use it.
- if (type == FOURCC('t', 'e', 'x', 't') || type == FOURCC('s', 'b', 't', 'l')) {
+ if (type == FOURCC("text") || type == FOURCC("sbtl")) {
if (mLastTrack != NULL) {
AMediaFormat_setString(mLastTrack->meta,
AMEDIAFORMAT_KEY_MIME, MEDIA_MIMETYPE_TEXT_3GPP);
@@ -2476,7 +2476,7 @@
break;
}
- case FOURCC('k', 'e', 'y', 's'):
+ case FOURCC("keys"):
{
*offset += chunk_size;
@@ -2489,7 +2489,7 @@
break;
}
- case FOURCC('t', 'r', 'e', 'x'):
+ case FOURCC("trex"):
{
*offset += chunk_size;
@@ -2508,7 +2508,7 @@
break;
}
- case FOURCC('t', 'x', '3', 'g'):
+ case FOURCC("tx3g"):
{
if (mLastTrack == NULL)
return ERROR_MALFORMED;
@@ -2552,7 +2552,7 @@
break;
}
- case FOURCC('c', 'o', 'v', 'r'):
+ case FOURCC("covr"):
{
*offset += chunk_size;
@@ -2583,12 +2583,12 @@
break;
}
- case FOURCC('c', 'o', 'l', 'r'):
+ case FOURCC("colr"):
{
*offset += chunk_size;
// this must be in a VisualSampleEntry box under the Sample Description Box ('stsd')
// ignore otherwise
- if (depth >= 2 && mPath[depth - 2] == FOURCC('s', 't', 's', 'd')) {
+ if (depth >= 2 && mPath[depth - 2] == FOURCC("stsd")) {
status_t err = parseColorInfo(data_offset, chunk_data_size);
if (err != OK) {
return err;
@@ -2598,12 +2598,12 @@
break;
}
- case FOURCC('t', 'i', 't', 'l'):
- case FOURCC('p', 'e', 'r', 'f'):
- case FOURCC('a', 'u', 't', 'h'):
- case FOURCC('g', 'n', 'r', 'e'):
- case FOURCC('a', 'l', 'b', 'm'):
- case FOURCC('y', 'r', 'r', 'c'):
+ case FOURCC("titl"):
+ case FOURCC("perf"):
+ case FOURCC("auth"):
+ case FOURCC("gnre"):
+ case FOURCC("albm"):
+ case FOURCC("yrrc"):
{
*offset += chunk_size;
@@ -2616,7 +2616,7 @@
break;
}
- case FOURCC('I', 'D', '3', '2'):
+ case FOURCC("ID32"):
{
*offset += chunk_size;
@@ -2629,7 +2629,7 @@
break;
}
- case FOURCC('-', '-', '-', '-'):
+ case FOURCC("----"):
{
mLastCommentMean.clear();
mLastCommentName.clear();
@@ -2638,7 +2638,7 @@
break;
}
- case FOURCC('s', 'i', 'd', 'x'):
+ case FOURCC("sidx"):
{
status_t err = parseSegmentIndex(data_offset, chunk_data_size);
if (err != OK) {
@@ -2648,25 +2648,25 @@
return UNKNOWN_ERROR; // stop parsing after sidx
}
- case FOURCC('a', 'c', '-', '3'):
+ case FOURCC("ac-3"):
{
*offset += chunk_size;
return parseAC3SpecificBox(data_offset);
}
- case FOURCC('e', 'c', '-', '3'):
+ case FOURCC("ec-3"):
{
*offset += chunk_size;
return parseEAC3SpecificBox(data_offset);
}
- case FOURCC('a', 'c', '-', '4'):
+ case FOURCC("ac-4"):
{
*offset += chunk_size;
return parseAC4SpecificBox(data_offset);
}
- case FOURCC('f', 't', 'y', 'p'):
+ case FOURCC("ftyp"):
{
if (chunk_data_size < 8 || depth != 0) {
return ERROR_MALFORMED;
@@ -2691,16 +2691,16 @@
brandSet.insert(brand);
}
- if (brandSet.count(FOURCC('q', 't', ' ', ' ')) > 0) {
+ if (brandSet.count(FOURCC("qt ")) > 0) {
mIsQT = true;
} else {
- if (brandSet.count(FOURCC('m', 'i', 'f', '1')) > 0
- && brandSet.count(FOURCC('h', 'e', 'i', 'c')) > 0) {
+ if (brandSet.count(FOURCC("mif1")) > 0
+ && brandSet.count(FOURCC("heic")) > 0) {
ALOGV("identified HEIF image");
mIsHeif = true;
- brandSet.erase(FOURCC('m', 'i', 'f', '1'));
- brandSet.erase(FOURCC('h', 'e', 'i', 'c'));
+ brandSet.erase(FOURCC("mif1"));
+ brandSet.erase(FOURCC("heic"));
}
if (!brandSet.empty()) {
@@ -2787,7 +2787,7 @@
// + 4-byte size
offset += 4;
uint32_t type;
- if (!mDataSource->getUInt32(offset, &type) || type != FOURCC('d', 'a', 'c', '4')) {
+ if (!mDataSource->getUInt32(offset, &type) || type != FOURCC("dac4")) {
ALOGE("MPEG4Extractor: error while reading ac-4 specific block: header not dac4");
return ERROR_MALFORMED;
}
@@ -2914,7 +2914,7 @@
offset += 4;
uint32_t type;
- if (!mDataSource->getUInt32(offset, &type) || type != FOURCC('d', 'e', 'c', '3')) {
+ if (!mDataSource->getUInt32(offset, &type) || type != FOURCC("dec3")) {
ALOGE("MPEG4Extractor: error while reading eac-3 specific block: header not dec3");
return ERROR_MALFORMED;
}
@@ -3071,7 +3071,7 @@
offset += 4;
uint32_t type;
- if (!mDataSource->getUInt32(offset, &type) || type != FOURCC('d', 'a', 'c', '3')) {
+ if (!mDataSource->getUInt32(offset, &type) || type != FOURCC("dac3")) {
ALOGE("MPEG4Extractor: error while reading ac-3 specific block: header not dac3");
return ERROR_MALFORMED;
}
@@ -3273,7 +3273,7 @@
uint32_t type;
if (!mDataSource->getUInt32(keyOffset + 4, &type)
- || type != FOURCC('m', 'd', 't', 'a')) {
+ || type != FOURCC("mdta")) {
return ERROR_MALFORMED;
}
@@ -3315,7 +3315,7 @@
}
uint32_t atomFourCC;
if (!mDataSource->getUInt32(offset + 4, &atomFourCC)
- || atomFourCC != FOURCC('d', 'a', 't', 'a')) {
+ || atomFourCC != FOURCC("data")) {
return ERROR_MALFORMED;
}
uint32_t dataType;
@@ -3476,48 +3476,48 @@
MakeFourCCString(mPath[4], chunk);
ALOGV("meta: %s @ %lld", chunk, (long long)offset);
switch ((int32_t)mPath[4]) {
- case FOURCC(0xa9, 'a', 'l', 'b'):
+ case FOURCC("\251alb"):
{
metadataKey = "album";
break;
}
- case FOURCC(0xa9, 'A', 'R', 'T'):
+ case FOURCC("\251ART"):
{
metadataKey = "artist";
break;
}
- case FOURCC('a', 'A', 'R', 'T'):
+ case FOURCC("aART"):
{
metadataKey = "albumartist";
break;
}
- case FOURCC(0xa9, 'd', 'a', 'y'):
+ case FOURCC("\251day"):
{
metadataKey = "year";
break;
}
- case FOURCC(0xa9, 'n', 'a', 'm'):
+ case FOURCC("\251nam"):
{
metadataKey = "title";
break;
}
- case FOURCC(0xa9, 'w', 'r', 't'):
+ case FOURCC("\251wrt"):
{
metadataKey = "writer";
break;
}
- case FOURCC('c', 'o', 'v', 'r'):
+ case FOURCC("covr"):
{
metadataKey = "albumart";
break;
}
- case FOURCC('g', 'n', 'r', 'e'):
- case FOURCC(0xa9, 'g', 'e', 'n'):
+ case FOURCC("gnre"):
+ case FOURCC("\251gen"):
{
metadataKey = "genre";
break;
}
- case FOURCC('c', 'p', 'i', 'l'):
+ case FOURCC("cpil"):
{
if (size == 9 && flags == 21) {
char tmp[16];
@@ -3528,7 +3528,7 @@
}
break;
}
- case FOURCC('t', 'r', 'k', 'n'):
+ case FOURCC("trkn"):
{
if (size == 16 && flags == 0) {
char tmp[16];
@@ -3540,7 +3540,7 @@
}
break;
}
- case FOURCC('d', 'i', 's', 'k'):
+ case FOURCC("disk"):
{
if ((size == 14 || size == 16) && flags == 0) {
char tmp[16];
@@ -3552,17 +3552,17 @@
}
break;
}
- case FOURCC('-', '-', '-', '-'):
+ case FOURCC("----"):
{
buffer[size] = '\0';
switch (mPath[5]) {
- case FOURCC('m', 'e', 'a', 'n'):
+ case FOURCC("mean"):
mLastCommentMean.setTo((const char *)buffer + 4);
break;
- case FOURCC('n', 'a', 'm', 'e'):
+ case FOURCC("name"):
mLastCommentName.setTo((const char *)buffer + 4);
break;
- case FOURCC('d', 'a', 't', 'a'):
+ case FOURCC("data"):
if (size < 8) {
delete[] buffer;
buffer = NULL;
@@ -3670,8 +3670,8 @@
}
int32_t type = U32_AT(&buffer[0]);
- if ((type == FOURCC('n', 'c', 'l', 'x') && size >= 11)
- || (type == FOURCC('n', 'c', 'l', 'c') && size >= 10)) {
+ if ((type == FOURCC("nclx") && size >= 11)
+ || (type == FOURCC("nclc") && size >= 10)) {
// only store the first color specification
int32_t existingColor;
if (!AMediaFormat_getInt32(mLastTrack->meta,
@@ -3679,7 +3679,7 @@
int32_t primaries = U16_AT(&buffer[4]);
int32_t isotransfer = U16_AT(&buffer[6]);
int32_t coeffs = U16_AT(&buffer[8]);
- bool fullRange = (type == FOURCC('n', 'c', 'l', 'x')) && (buffer[10] & 128);
+ bool fullRange = (type == FOURCC("nclx")) && (buffer[10] & 128);
int32_t range = 0;
int32_t standard = 0;
@@ -3725,27 +3725,27 @@
const char *metadataKey = nullptr;
switch (mPath[depth]) {
- case FOURCC('t', 'i', 't', 'l'):
+ case FOURCC("titl"):
{
metadataKey = "title";
break;
}
- case FOURCC('p', 'e', 'r', 'f'):
+ case FOURCC("perf"):
{
metadataKey = "artist";
break;
}
- case FOURCC('a', 'u', 't', 'h'):
+ case FOURCC("auth"):
{
metadataKey = "writer";
break;
}
- case FOURCC('g', 'n', 'r', 'e'):
+ case FOURCC("gnre"):
{
metadataKey = "genre";
break;
}
- case FOURCC('a', 'l', 'b', 'm'):
+ case FOURCC("albm"):
{
if (buffer[size - 1] != '\0') {
char tmp[4];
@@ -3757,7 +3757,7 @@
metadataKey = "album";
break;
}
- case FOURCC('y', 'r', 'r', 'c'):
+ case FOURCC("yrrc"):
{
if (size < 6) {
delete[] buffer;
@@ -4610,8 +4610,8 @@
switch(chunk_type) {
- case FOURCC('t', 'r', 'a', 'f'):
- case FOURCC('m', 'o', 'o', 'f'): {
+ case FOURCC("traf"):
+ case FOURCC("moof"): {
off64_t stop_offset = *offset + chunk_size;
*offset = data_offset;
while (*offset < stop_offset) {
@@ -4620,7 +4620,7 @@
return err;
}
}
- if (chunk_type == FOURCC('m', 'o', 'o', 'f')) {
+ if (chunk_type == FOURCC("moof")) {
// *offset points to the box following this moof. Find the next moof from there.
while (true) {
@@ -4649,7 +4649,7 @@
return ERROR_MALFORMED;
}
- if (chunk_type == FOURCC('m', 'o', 'o', 'f')) {
+ if (chunk_type == FOURCC("moof")) {
mNextMoofOffset = *offset;
break;
} else if (chunk_size == 0) {
@@ -4661,7 +4661,7 @@
break;
}
- case FOURCC('t', 'f', 'h', 'd'): {
+ case FOURCC("tfhd"): {
status_t err;
if ((err = parseTrackFragmentHeader(data_offset, chunk_data_size)) != OK) {
return err;
@@ -4670,7 +4670,7 @@
break;
}
- case FOURCC('t', 'r', 'u', 'n'): {
+ case FOURCC("trun"): {
status_t err;
if (mLastParsedTrackId == mTrackId) {
if ((err = parseTrackFragmentRun(data_offset, chunk_data_size)) != OK) {
@@ -4682,7 +4682,7 @@
break;
}
- case FOURCC('s', 'a', 'i', 'z'): {
+ case FOURCC("saiz"): {
status_t err;
if ((err = parseSampleAuxiliaryInformationSizes(data_offset, chunk_data_size)) != OK) {
return err;
@@ -4690,7 +4690,7 @@
*offset += chunk_size;
break;
}
- case FOURCC('s', 'a', 'i', 'o'): {
+ case FOURCC("saio"): {
status_t err;
if ((err = parseSampleAuxiliaryInformationOffsets(data_offset, chunk_data_size))
!= OK) {
@@ -4700,7 +4700,7 @@
break;
}
- case FOURCC('s', 'e', 'n', 'c'): {
+ case FOURCC("senc"): {
status_t err;
if ((err = parseSampleEncryption(data_offset)) != OK) {
return err;
@@ -4709,7 +4709,7 @@
break;
}
- case FOURCC('m', 'd', 'a', 't'): {
+ case FOURCC("mdat"): {
// parse DRM info if present
ALOGV("MPEG4Source::parseChunk mdat");
// if saiz/saoi was previously observed, do something with the sampleinfos
@@ -6031,28 +6031,28 @@
static bool isCompatibleBrand(uint32_t fourcc) {
static const uint32_t kCompatibleBrands[] = {
- FOURCC('i', 's', 'o', 'm'),
- FOURCC('i', 's', 'o', '2'),
- FOURCC('a', 'v', 'c', '1'),
- FOURCC('h', 'v', 'c', '1'),
- FOURCC('h', 'e', 'v', '1'),
- FOURCC('a', 'v', '0', '1'),
- FOURCC('3', 'g', 'p', '4'),
- FOURCC('m', 'p', '4', '1'),
- FOURCC('m', 'p', '4', '2'),
- FOURCC('d', 'a', 's', 'h'),
+ FOURCC("isom"),
+ FOURCC("iso2"),
+ FOURCC("avc1"),
+ FOURCC("hvc1"),
+ FOURCC("hev1"),
+ FOURCC("av01"),
+ FOURCC("3gp4"),
+ FOURCC("mp41"),
+ FOURCC("mp42"),
+ FOURCC("dash"),
// Won't promise that the following file types can be played.
// Just give these file types a chance.
- FOURCC('q', 't', ' ', ' '), // Apple's QuickTime
- FOURCC('M', 'S', 'N', 'V'), // Sony's PSP
+ FOURCC("qt "), // Apple's QuickTime
+ FOURCC("MSNV"), // Sony's PSP
- FOURCC('3', 'g', '2', 'a'), // 3GPP2
- FOURCC('3', 'g', '2', 'b'),
- FOURCC('m', 'i', 'f', '1'), // HEIF image
- FOURCC('h', 'e', 'i', 'c'), // HEIF image
- FOURCC('m', 's', 'f', '1'), // HEIF image sequence
- FOURCC('h', 'e', 'v', 'c'), // HEIF image sequence
+ FOURCC("3g2a"), // 3GPP2
+ FOURCC("3g2b"),
+ FOURCC("mif1"), // HEIF image
+ FOURCC("heic"), // HEIF image
+ FOURCC("msf1"), // HEIF image sequence
+ FOURCC("hevc"), // HEIF image sequence
};
for (size_t i = 0;
@@ -6120,7 +6120,7 @@
ALOGV("saw chunk type %s, size %" PRIu64 " @ %lld",
chunkstring, chunkSize, (long long)offset);
switch (chunkType) {
- case FOURCC('f', 't', 'y', 'p'):
+ case FOURCC("ftyp"):
{
if (chunkDataSize < 8) {
return false;
@@ -6155,7 +6155,7 @@
break;
}
- case FOURCC('m', 'o', 'o', 'v'):
+ case FOURCC("moov"):
{
moovAtomEndOffset = offset + chunkSize;
diff --git a/media/extractors/mp4/SampleTable.cpp b/media/extractors/mp4/SampleTable.cpp
index d242798..7db984a 100644
--- a/media/extractors/mp4/SampleTable.cpp
+++ b/media/extractors/mp4/SampleTable.cpp
@@ -37,13 +37,13 @@
namespace android {
// static
-const uint32_t SampleTable::kChunkOffsetType32 = FOURCC('s', 't', 'c', 'o');
+const uint32_t SampleTable::kChunkOffsetType32 = FOURCC("stco");
// static
-const uint32_t SampleTable::kChunkOffsetType64 = FOURCC('c', 'o', '6', '4');
+const uint32_t SampleTable::kChunkOffsetType64 = FOURCC("co64");
// static
-const uint32_t SampleTable::kSampleSizeType32 = FOURCC('s', 't', 's', 'z');
+const uint32_t SampleTable::kSampleSizeType32 = FOURCC("stsz");
// static
-const uint32_t SampleTable::kSampleSizeTypeCompact = FOURCC('s', 't', 'z', '2');
+const uint32_t SampleTable::kSampleSizeTypeCompact = FOURCC("stz2");
////////////////////////////////////////////////////////////////////////////////