summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/libwebm/source/dumpvtt.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/libwebm/source/dumpvtt.cc')
-rw-r--r--chromium/third_party/libwebm/source/dumpvtt.cc91
1 files changed, 91 insertions, 0 deletions
diff --git a/chromium/third_party/libwebm/source/dumpvtt.cc b/chromium/third_party/libwebm/source/dumpvtt.cc
new file mode 100644
index 00000000000..e5cd4b5ba29
--- /dev/null
+++ b/chromium/third_party/libwebm/source/dumpvtt.cc
@@ -0,0 +1,91 @@
+// Copyright (c) 2012 The WebM project authors. All Rights Reserved.
+//
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file in the root of the source
+// tree. An additional intellectual property rights grant can be found
+// in the file PATENTS. All contributing project authors may
+// be found in the AUTHORS file in the root of the source tree.
+
+#include <cstdio>
+#include <cstdlib>
+#include "./vttreader.h"
+#include "./webvttparser.h"
+
+int main(int argc, const char* argv[]) {
+ if (argc != 2) {
+ fprintf(stdout, "usage: dumpvtt <vtt file>\n");
+ return EXIT_SUCCESS;
+ }
+
+ libwebvtt::VttReader reader;
+ const char* const filename = argv[1];
+
+ if (int e = reader.Open(filename)) {
+ (void)e;
+ fprintf(stderr, "open failed\n");
+ return EXIT_FAILURE;
+ }
+
+ libwebvtt::Parser parser(&reader);
+
+ if (int e = parser.Init()) {
+ (void)e;
+ fprintf(stderr, "parser init failed\n");
+ return EXIT_FAILURE;
+ }
+
+ for (libwebvtt::Cue cue;;) {
+ const int e = parser.Parse(&cue);
+
+ if (e < 0) { // error
+ fprintf(stderr, "error parsing cue\n");
+ return EXIT_FAILURE;
+ }
+
+ if (e > 0) // EOF
+ return EXIT_SUCCESS;
+
+ fprintf(stdout, "cue identifier: \"%s\"\n", cue.identifier.c_str());
+
+ const libwebvtt::Time& st = cue.start_time;
+ fprintf(stdout, "cue start time: \"HH=%i MM=%i SS=%i SSS=%i\"\n", st.hours,
+ st.minutes, st.seconds, st.milliseconds);
+
+ const libwebvtt::Time& sp = cue.stop_time;
+ fprintf(stdout, "cue stop time: \"HH=%i MM=%i SS=%i SSS=%i\"\n", sp.hours,
+ sp.minutes, sp.seconds, sp.milliseconds);
+
+ {
+ typedef libwebvtt::Cue::settings_t::const_iterator iter_t;
+ iter_t i = cue.settings.begin();
+ const iter_t j = cue.settings.end();
+
+ if (i == j) {
+ fprintf(stdout, "cue setting: <no settings present>\n");
+ } else {
+ while (i != j) {
+ const libwebvtt::Setting& setting = *i++;
+ fprintf(stdout, "cue setting: name=%s value=%s\n",
+ setting.name.c_str(), setting.value.c_str());
+ }
+ }
+ }
+
+ {
+ typedef libwebvtt::Cue::payload_t::const_iterator iter_t;
+ iter_t i = cue.payload.begin();
+ const iter_t j = cue.payload.end();
+
+ int idx = 1;
+ while (i != j) {
+ const std::string& payload = *i++;
+ const char* const payload_str = payload.c_str();
+ fprintf(stdout, "cue payload[%i]: \"%s\"\n", idx, payload_str);
+ ++idx;
+ }
+ }
+
+ fprintf(stdout, "\n");
+ fflush(stdout);
+ }
+}