diff options
author | Torne (Richard Coles) <torne@google.com> | 2014-02-21 12:16:55 +0000 |
---|---|---|
committer | Torne (Richard Coles) <torne@google.com> | 2014-02-21 12:16:55 +0000 |
commit | 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7 (patch) | |
tree | 5d4ae202b870bd86673f596f0d424bc4b3e55ebe /media/base/audio_video_metadata_extractor.h | |
parent | e862bac9c33104a29d98631d62668ae7b6676510 (diff) | |
download | chromium_org-5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7.tar.gz |
Merge from Chromium at DEPS revision 251904
This commit was generated by merge_to_master.py.
Change-Id: I1f9543259d7d2a57d81aa41a1b84f85837439d21
Diffstat (limited to 'media/base/audio_video_metadata_extractor.h')
-rw-r--r-- | media/base/audio_video_metadata_extractor.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/media/base/audio_video_metadata_extractor.h b/media/base/audio_video_metadata_extractor.h new file mode 100644 index 0000000000..7ea73e20ab --- /dev/null +++ b/media/base/audio_video_metadata_extractor.h @@ -0,0 +1,82 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_BASE_AUDIO_VIDEO_METADATA_EXTRACTOR_H_ +#define MEDIA_BASE_AUDIO_VIDEO_METADATA_EXTRACTOR_H_ + +#include <string> + +#include "base/basictypes.h" +#include "media/base/media_export.h" + +struct AVDictionary; + +namespace media { + +class DataSource; + +// This class extracts a string dictionary of metadata tags for audio and video +// files. It also provides the format name. +class MEDIA_EXPORT AudioVideoMetadataExtractor { + public: + AudioVideoMetadataExtractor(); + ~AudioVideoMetadataExtractor(); + + // Returns whether or not the fields were successfully extracted. Should only + // be called once. + bool Extract(DataSource* source); + + // Returns -1 if we cannot extract the duration. In seconds. + double duration() const; + + // Returns -1 for containers without video. + int width() const; + int height() const; + + // Returns -1 if undefined. + int rotation() const; + + // Returns -1 or an empty string if the value is undefined. + const std::string& album() const; + const std::string& artist() const; + const std::string& comment() const; + const std::string& copyright() const; + const std::string& date() const; + int disc() const; + const std::string& encoder() const; + const std::string& encoded_by() const; + const std::string& genre() const; + const std::string& language() const; + const std::string& title() const; + int track() const; + + private: + void ExtractDictionary(AVDictionary* metadata); + + bool extracted_; + + int duration_; + int width_; + int height_; + + std::string album_; + std::string artist_; + std::string comment_; + std::string copyright_; + std::string date_; + int disc_; + std::string encoder_; + std::string encoded_by_; + std::string genre_; + std::string language_; + int rotation_; + std::string title_; + int track_; + + DISALLOW_COPY_AND_ASSIGN(AudioVideoMetadataExtractor); +}; + +} // namespace media + +#endif // MEDIA_BASE_AUDIO_VIDEO_METADATA_EXTRACTOR_H_ |