Loading...
Searching...
No Matches
asfvideo.hpp
Go to the documentation of this file.
// ***************************************************************** -*- C++ -*-
/*
* Copyright (C) 2004-2021 Exiv2 authors
* This program is part of the Exiv2 distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
*/
#ifndef ASFVIDEO_HPP
#define ASFVIDEO_HPP
// *****************************************************************************
#include "exiv2lib_export.h"
// included header files
#include "image.hpp"
namespace Exiv2 {
// *****************************************************************************
// class definitions
// Add ASF to the supported image formats
namespace ImageType {
const int asf = 24;
}
class EXIV2LIB_DEPRECATED_EXPORT AsfVideo:public Image
{
public:
AsfVideo(BasicIo::AutoPtr io);
void readMetadata();
void writeMetadata();
std::string mimeType() const;
protected:
void decodeBlock();
void tagDecoder(const Internal::TagVocabulary* tv, uint64_t size);
void fileProperties();
void streamProperties();
void codecList();
void contentDescription(uint64_t size);
void extendedStreamProperties(uint64_t size);
void headerExtension(uint64_t size);
void metadataHandler(int meta = 1);
void aspectRatio();
private:
AsfVideo(const AsfVideo& rhs);
AsfVideo& operator=(const AsfVideo& rhs);
private:
bool continueTraversing_;
uint64_t localPosition_;
int streamNumber_;
uint64_t height_, width_;
}; //Class AsfVideo
// *****************************************************************************
// template, inline and free functions
// These could be static private functions on Image subclasses but then
// ImageFactory needs to be made a friend.
EXIV2LIB_DEPRECATED_EXPORT Image::AutoPtr newAsfInstance(BasicIo::AutoPtr io, bool create);
EXIV2LIB_DEPRECATED_EXPORT bool isAsfType(BasicIo& iIo, bool advance);
} // namespace Exiv2
#endif // #ifndef ASFVIDEO_HPP_
Exiv2::AsfVideo
Class to access ASF video files.
Definition asfvideo.hpp:50
Exiv2::AsfVideo::metadataHandler
void metadataHandler(int meta=1)
Interpret Metadata, Extended_Content_Description, Metadata_Library tag information,...
Exiv2::AsfVideo::mimeType
std::string mimeType() const
Return the MIME type of the image.
Exiv2::AsfVideo::headerExtension
void headerExtension(uint64_t size)
Interpret Header_Extension tag information, and save it in the respective XMP container.
Exiv2::AsfVideo::extendedStreamProperties
void extendedStreamProperties(uint64_t size)
Interpret Extended_Stream_Properties tag information, and save it in the respective XMP container.
Exiv2::AsfVideo::tagDecoder
void tagDecoder(const Internal::TagVocabulary *tv, uint64_t size)
Interpret tag information, and call the respective function to save it in the respective XMP containe...
Exiv2::AsfVideo::readMetadata
void readMetadata()
Read all metadata supported by a specific image format from the image. Before this method is called,...
Exiv2::AsfVideo::aspectRatio
void aspectRatio()
Calculates Aspect Ratio of a video, and stores it in the respective XMP container.
Exiv2::AsfVideo::contentDescription
void contentDescription(uint64_t size)
Interpret Content_Description tag information, and save it in the respective XMP container.
Exiv2::AsfVideo::decodeBlock
void decodeBlock()
Check for a valid tag and decode the block at the current IO position. Calls tagDecoder() or skips to...
Exiv2::AsfVideo::codecList
void codecList()
Interpret Codec_List tag information, and save it in the respective XMP container.
Exiv2::AsfVideo::writeMetadata
void writeMetadata()
Write metadata back to the image.
Exiv2::AsfVideo::streamProperties
void streamProperties()
Interpret Stream_Properties tag information, and save it in the respective XMP container.
Exiv2::AsfVideo::AsfVideo
AsfVideo(BasicIo::AutoPtr io)
Constructor for a ASF video. Since the constructor can not return a result, callers should check the ...
Exiv2::AsfVideo::fileProperties
void fileProperties()
Interpret File_Properties tag information, and save it in the respective XMP container.
Exiv2::BasicIo
An interface for simple binary IO.
Definition basicio.hpp:55
Exiv2::BasicIo::AutoPtr
std::auto_ptr< BasicIo > AutoPtr
BasicIo auto_ptr type.
Definition basicio.hpp:58
Exiv2::Image
Abstract base class defining the interface for an image. This is the top-level interface to the Exiv2...
Definition image.hpp:78
Exiv2::Image::AutoPtr
std::auto_ptr< Image > AutoPtr
Image auto_ptr type.
Definition image.hpp:81
Exiv2::ImageType::asf
const int asf
Treating asf as an image type>
Definition asfvideo.hpp:43
Exiv2
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition asfvideo.hpp:36
Exiv2::isAsfType
EXIV2LIB_DEPRECATED_EXPORT bool isAsfType(BasicIo &iIo, bool advance)
Check if the file iIo is a Windows Asf Video.
Exiv2::newAsfInstance
EXIV2LIB_DEPRECATED_EXPORT Image::AutoPtr newAsfInstance(BasicIo::AutoPtr io, bool create)
Create a new AsfVideo instance and return an auto-pointer to it. Caller owns the returned object and ...
Exiv2::Internal::TagVocabulary
Helper structure for lookup tables for translations of controlled vocabulary strings to their descrip...
Definition tags_int.hpp:246