| #ifndef DYNAMIC_DEPTH_INCLUDES_XMPMETA_XMP_WRITER_H_ // NOLINT |
| #define DYNAMIC_DEPTH_INCLUDES_XMPMETA_XMP_WRITER_H_ // NOLINT |
| |
| #include <iostream> |
| #include <memory> |
| #include <string> |
| |
| #include "base/port.h" |
| #include "xmpmeta/xmp_data.h" |
| |
| namespace dynamic_depth { |
| namespace xmpmeta { |
| |
| // Creates a new XmpData object and initializes the boilerplate for the |
| // standard XMP section. |
| // The extended section is initialized only if create_extended is true. |
| std::unique_ptr<XmpData> CreateXmpData(bool create_extended); |
| |
| // Writes XMP data to an existing JPEG image file. |
| // This is equivalent to writeXMPMeta in geo/lightfield/metadata/XmpUtil.java. |
| // If the extended section is not null, this will modify the given XmpData by |
| // setting a property in the standard section that links it with the |
| // extended section. |
| bool WriteLeftEyeAndXmpMeta(const string& left_data, const string& filename, |
| const XmpData& xmp_data); |
| |
| // Same as above, but allows the caller to manage their own istream and ostream. |
| // filename is written to only if metadata serialization is successful. |
| // Assumes the caller will take care of opening and closing the |
| // output_jpeg_stream (if it is associated with a file), as well as |
| // initialization of the input_jpeg_stream. This is nearly equivalent to |
| // writeXMPMeta in kgeo/lightfield/metadata/XmpUtil.java. |
| bool WriteLeftEyeAndXmpMeta(const XmpData& xmp_data, |
| std::istream* input_jpeg_stream, |
| std::ostream* output_jpeg_stream); |
| |
| } // namespace xmpmeta |
| } // namespace dynamic_depth |
| |
| #endif // DYNAMIC_DEPTH_INCLUDES_XMPMETA_XMP_WRITER_H_ // NOLINT |