summaryrefslogtreecommitdiff
path: root/media/base/audio_video_metadata_extractor.h
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2014-02-21 12:16:55 +0000
committerTorne (Richard Coles) <torne@google.com>2014-02-21 12:16:55 +0000
commit5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7 (patch)
tree5d4ae202b870bd86673f596f0d424bc4b3e55ebe /media/base/audio_video_metadata_extractor.h
parente862bac9c33104a29d98631d62668ae7b6676510 (diff)
downloadchromium_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.h82
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_