vector<int32_t> AtomCTTS::GetEntries() { if (_normalizedEntries.size() != 0) return _normalizedEntries; FOR_VECTOR_ITERATOR(CTTSEntry, _entries, i) { for (uint32_t j = 0; j < VECTOR_VAL(i).sampleCount; j++) { ADD_VECTOR_END(_normalizedEntries, VECTOR_VAL(i).sampleOffset); } } return _normalizedEntries; }
vector<uint32_t> AtomSTTS::GetEntries() { if (_normalizedEntries.size() != 0) return _normalizedEntries; FOR_VECTOR_ITERATOR(STTSEntry, _sttsEntries, i) { for (uint32_t j = 0; j < VECTOR_VAL(i).count; j++) { ADD_VECTOR_END(_normalizedEntries, VECTOR_VAL(i).delta); } } return _normalizedEntries; }
bool AMF0Serializer::WriteObject(IOBuffer &buffer, Variant &variant, bool writeType) { if (writeType) buffer.ReadFromRepeat(AMF0_OBJECT, 1); Variant temp = variant; FOR_VECTOR_ITERATOR(string, _keysOrder, i) { if (temp.HasKey(VECTOR_VAL(i))) { if (!WriteShortString(buffer, VECTOR_VAL(i), false)) { FATAL("Unable to serialize key"); return false; } if (!Write(buffer, temp[VECTOR_VAL(i)])) { FATAL("Unable to serialize value"); return false; } temp.RemoveKey(VECTOR_VAL(i)); } } FOR_MAP(temp, string, Variant, i) { string key = MAP_KEY(i); if (key.find(VAR_INDEX_VALUE) == 0) { key = key.substr(VAR_INDEX_VALUE_LEN); } if (!WriteShortString(buffer, key, false)) { FATAL("Unable to serialize key"); return false; } if (!Write(buffer, MAP_VAL(i))) { FATAL("Unable to serialize value"); return false; } }
bool AMF0Serializer::WriteObject(IOBuffer &buffer, Variant &variant, bool writeType) { if (writeType) buffer.ReadFromRepeat(AMF0_OBJECT, 1); Variant temp = variant; FOR_VECTOR_ITERATOR(string, _keysOrder, i) { if (temp.HasKey(VECTOR_VAL(i))) { if (!WriteShortString(buffer, VECTOR_VAL(i), false)) { FATAL("Unable to serialize key"); return false; } if (!Write(buffer, temp[VECTOR_VAL(i)])) { FATAL("Unable to serialize value"); return false; } temp.RemoveKey(VECTOR_VAL(i)); } } FOR_MAP(temp, string, Variant, i) { string key = MAP_KEY(i); if ((key.length() == 10) && (key[0] == '0') && (key[1] == 'x')) { key = format("%"PRIu32, (uint32_t) strtol(key.c_str(), NULL, 16)); } if (!WriteShortString(buffer, key, false)) { FATAL("Unable to serialize key"); return false; } if (!Write(buffer, MAP_VAL(i))) { FATAL("Unable to serialize value"); return false; } }
MP4Document::~MP4Document() { FOR_VECTOR_ITERATOR(BaseAtom *, _allAtoms, i) { delete VECTOR_VAL(i); }
FOR_VECTOR_ITERATOR(AVCCParameter, _picParameters, i) { if (VECTOR_VAL(i).pData != NULL) delete[] VECTOR_VAL(i).pData; }