/** * @file * Implementation of the ADTF default media description. * @copyright * @verbatim Copyright @ 2017 Audi Electronics Venture GmbH. All rights reserved. This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. You may add additional accurate notices of copyright ownership. @endverbatim */ #include "serialization.h" #include "a_util/result/error_def.h" namespace ddl { namespace serialization { //define all needed error types and values locally _MAKE_RESULT(-12, ERR_MEMORY) a_util::result::Result transform_to_buffer(const Decoder& decoder, a_util::memory::MemoryBuffer& buffer, bool zero) { DataRepresentation target_rep = decoder.getRepresentation() == deserialized ? serialized : deserialized; size_t needed_size = decoder.getBufferSize(target_rep); if (buffer.getSize() < needed_size) { if (!buffer.allocate(needed_size)) { return ERR_MEMORY; } } if (zero) { a_util::memory::set(buffer.getPtr(), buffer.getSize(), 0, buffer.getSize()); } Codec codec = decoder.makeCodecFor(buffer.getPtr(), buffer.getSize(), target_rep); return transform(decoder, codec); } } }