Remove webm_info.

It belongs in the libwebm repo, and now it lives there.

Change-Id: I6dad1aaaaddcefd4f54ef34c15a344b1d5d36a78
diff --git a/webm_info/Makefile b/webm_info/Makefile
deleted file mode 100644
index 181ace0..0000000
--- a/webm_info/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-LIBWEBM := ../../libwebm
-OBJECTS := ../shared/indent.o ../shared/webm_endian.o webm_info.o
-EXE := webm_info
-INCLUDES = -I$(LIBWEBM) -I../shared
-DEBUG := -g
-CXXFLAGS = -W -Wall -O2 $(DEBUG)
-
-$(EXE): $(OBJECTS)
-	$(CXX) $(OBJECTS) -L$(LIBWEBM) -lwebm -o $(EXE)
-
-%.o: %.cc
-	$(CXX) -c $(CXXFLAGS) $(INCLUDES) $< -o $@
-
-all: $(EXE)
-
-clean:
-	$(RM) $(OBJECTS) $(EXE) Makefile.bak
-
-.PHONY: all clean
diff --git a/webm_info/webm_info.cc b/webm_info/webm_info.cc
deleted file mode 100644
index ab5cc2c..0000000
--- a/webm_info/webm_info.cc
+++ /dev/null
@@ -1,1095 +0,0 @@
-// 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 <cstdlib>
-#include <cstring>
-#include <limits>
-#include <memory>
-#include <queue>
-#include <string>
-#include <vector>
-
-#include "indent.h"
-#include "mkvparser/mkvparser.h"
-#include "mkvparser/mkvreader.h"
-#include "webm_constants.h"
-#include "webm_endian.h"
-
-namespace {
-
-using mkvparser::ContentEncoding;
-using std::string;
-using std::wstring;
-using webm_tools::Indent;
-using webm_tools::int64;
-using webm_tools::uint8;
-using webm_tools::uint32;
-using webm_tools::uint64;
-using webm_tools::kNanosecondsPerSecond;
-using webm_tools::kNanosecondsPerSecondi;
-
-const char VERSION_STRING[] = "1.0.3.0";
-
-struct Options {
-  Options();
-
-  // Returns true if |value| matches -|option| or -no|option|.
-  static bool MatchesBooleanOption(const string& option, const string& value);
-
-  // Set all of the member variables to |value|.
-  void SetAll(bool value);
-
-  bool output_video;
-  bool output_audio;
-  bool output_size;
-  bool output_offset;
-  bool output_seconds;
-  bool output_ebml_header;
-  bool output_segment;
-  bool output_seekhead;
-  bool output_segment_info;
-  bool output_tracks;
-  bool output_clusters;
-  bool output_blocks;
-  bool output_codec_info;
-  bool output_clusters_size;
-  bool output_encrypted_info;
-  bool output_cues;
-  bool output_frame_stats;
-};
-
-Options::Options()
-    : output_video(true),
-      output_audio(true),
-      output_size(false),
-      output_offset(false),
-      output_seconds(true),
-      output_ebml_header(true),
-      output_segment(true),
-      output_seekhead(false),
-      output_segment_info(true),
-      output_tracks(true),
-      output_clusters(false),
-      output_blocks(false),
-      output_codec_info(false),
-      output_clusters_size(false),
-      output_encrypted_info(false),
-      output_cues(false),
-      output_frame_stats(false) {
-}
-
-void Options::SetAll(bool value) {
-  output_video = value;
-  output_audio = value;
-  output_size = value;
-  output_offset = value;
-  output_ebml_header = value;
-  output_seconds = value;
-  output_segment = value;
-  output_segment_info = value;
-  output_tracks = value;
-  output_clusters = value;
-  output_blocks = value;
-  output_codec_info = value;
-  output_clusters_size = value;
-  output_encrypted_info = value;
-  output_cues = value;
-  output_frame_stats = value;
-}
-
-bool Options::MatchesBooleanOption(const string& option, const string& value) {
-  const string opt = "-" + option;
-  const string noopt = "-no" + option;
-  return value == opt || value == noopt;
-}
-
-struct FrameStats {
-  FrameStats()
-    : frames(0),
-      displayed_frames(0),
-      first_altref(true),
-      frames_since_last_altref(0),
-      minimum_altref_distance(std::numeric_limits<int>::max()),
-      min_altref_end_ns(0),
-      max_window_size(0),
-      max_window_end_ns(0) {
-  }
-
-  int frames;
-  int displayed_frames;
-
-  bool first_altref;
-  int frames_since_last_altref;
-  int minimum_altref_distance;
-  int64 min_altref_end_ns;
-
-  std::queue<int64> window;
-  int64 max_window_size;
-  int64 max_window_end_ns;
-};
-
-void Usage() {
-  printf("Usage: webm_info [options] -i input\n");
-  printf("\n");
-  printf("Main options:\n");
-  printf("  -h | -?               show help\n");
-  printf("  -v                    show version\n");
-  printf("  -all                  Enable all output options.\n");
-  printf("  -video                Output video tracks (true)\n");
-  printf("  -audio                Output audio tracks (true)\n");
-  printf("  -size                 Output element sizes (false)\n");
-  printf("  -offset               Output element offsets (false)\n");
-  printf("  -times_seconds        Output times as seconds (true)\n");
-  printf("  -ebml_header          Output EBML header (true)\n");
-  printf("  -segment              Output Segment (true)\n");
-  printf("  -seekhead             Output SeekHead (false)\n");
-  printf("  -segment_info         Output SegmentInfo (true)\n");
-  printf("  -tracks               Output Tracks (true)\n");
-  printf("  -clusters             Output Clusters (false)\n");
-  printf("  -blocks               Output Blocks (false)\n");
-  printf("  -codec_info           Output video codec information (false)\n");
-  printf("  -clusters_size        Output Total Clusters size (false)\n");
-  printf("  -encrypted_info       Output encrypted frame info (false)\n");
-  printf("  -cues                 Output Cues entries (false)\n");
-  printf("  -frame_stats          Output frame stats (VP9)(false)\n");
-  printf("\nOutput options may be negated by prefixing 'no'.\n");
-}
-
-// TODO(fgalligan): Add support for non-ascii.
-wstring UTF8ToWideString(const char* str) {
-  wstring wstr;
-
-  if (str == NULL)
-    return wstr;
-
-  string temp_str(str, strlen(str));
-  wstr.assign(temp_str.begin(), temp_str.end());
-
-  return wstr;
-}
-
-void OutputEBMLHeader(const mkvparser::EBMLHeader& ebml,
-                      FILE* o,
-                      Indent* indent) {
-  fprintf(o, "EBML Header:\n");
-  indent->Adjust(webm_tools::kIncreaseIndent);
-  fprintf(o, "%sEBMLVersion       : %lld\n",
-          indent->indent_str().c_str(), ebml.m_version);
-  fprintf(o, "%sEBMLReadVersion   : %lld\n",
-          indent->indent_str().c_str(), ebml.m_readVersion);
-  fprintf(o, "%sEBMLMaxIDLength   : %lld\n",
-          indent->indent_str().c_str(), ebml.m_maxIdLength);
-  fprintf(o, "%sEBMLMaxSizeLength : %lld\n",
-          indent->indent_str().c_str(), ebml.m_maxSizeLength);
-  fprintf(o, "%sDoc Type          : %s\n",
-          indent->indent_str().c_str(), ebml.m_docType);
-  fprintf(o, "%sDocTypeVersion    : %lld\n",
-          indent->indent_str().c_str(), ebml.m_docTypeVersion);
-  fprintf(o, "%sDocTypeReadVersion: %lld\n",
-          indent->indent_str().c_str(), ebml.m_docTypeReadVersion);
-  indent->Adjust(webm_tools::kDecreaseIndent);
-}
-
-void OutputSegment(const mkvparser::Segment& segment,
-                   const Options& options,
-                   FILE* o) {
-  fprintf(o, "Segment:");
-  if (options.output_offset)
-    fprintf(o, "  @: %lld", segment.m_element_start);
-  if (options.output_size)
-    fprintf(o, "  size: %lld",
-            segment.m_size + segment.m_start - segment.m_element_start);
-  fprintf(o, "\n");
-}
-
-bool OutputSeekHead(const mkvparser::Segment& segment,
-                    const Options& options, FILE* o, Indent* indent) {
-  const mkvparser::SeekHead* const seekhead = segment.GetSeekHead();
-  if (!seekhead) {
-    // SeekHeads are optional.
-    return true;
-  }
-
-  fprintf(o, "%sSeekHead:", indent->indent_str().c_str());
-  if (options.output_offset)
-    fprintf(o, "  @: %lld", seekhead->m_element_start);
-  if (options.output_size)
-    fprintf(o, "  size: %lld", seekhead->m_element_size);
-  fprintf(o, "\n");
-
-  indent->Adjust(webm_tools::kIncreaseIndent);
-
-  for (int i = 0; i < seekhead->GetCount(); ++i) {
-    const mkvparser::SeekHead::Entry* const entry = seekhead->GetEntry(i);
-    if (!entry) {
-      fprintf(stderr, "Error retrieving SeekHead entry #%d\n", i);
-      return false;
-    }
-
-    fprintf(o, "%sEntry[%d]", indent->indent_str().c_str(), i);
-    if (options.output_offset)
-      fprintf(o, "  @: %lld", entry->element_start);
-    if (options.output_size)
-      fprintf(o, "  size: %lld", entry->element_size);
-    fprintf(o, "\n");
-
-    indent->Adjust(webm_tools::kIncreaseIndent);
-    const char* const entry_indent = indent->indent_str().c_str();
-    // TODO(jzern): 1) known ids could be stringified. 2) ids could be
-    // reencoded to EBML for ease of lookup.
-    fprintf(o, "%sSeek ID       : %llx\n", entry_indent, entry->id);
-    fprintf(o, "%sSeek position : %lld\n", entry_indent, entry->pos);
-    indent->Adjust(webm_tools::kDecreaseIndent);
-  }
-
-  for (int i = 0; i < seekhead->GetVoidElementCount(); ++i) {
-    const mkvparser::SeekHead::VoidElement* const entry =
-        seekhead->GetVoidElement(i);
-    if (!entry) {
-      fprintf(stderr, "Error retrieving SeekHead void element #%d\n", i);
-      return false;
-    }
-
-    fprintf(o, "%sVoid element[%d]", indent->indent_str().c_str(), i);
-    if (options.output_offset)
-      fprintf(o, "  @: %lld", entry->element_start);
-    if (options.output_size)
-      fprintf(o, "  size: %lld", entry->element_size);
-    fprintf(o, "\n");
-  }
-
-  indent->Adjust(webm_tools::kDecreaseIndent);
-  return true;
-}
-
-bool OutputSegmentInfo(const mkvparser::Segment& segment,
-                       const Options& options,
-                       FILE* o,
-                       Indent* indent) {
-  const mkvparser::SegmentInfo* const segment_info = segment.GetInfo();
-  if (!segment_info) {
-    fprintf(stderr, "SegmentInfo was NULL.\n");
-    return false;
-  }
-
-  const int64 timecode_scale = segment_info->GetTimeCodeScale();
-  const int64 duration_ns = segment_info->GetDuration();
-  const wstring title = UTF8ToWideString(segment_info->GetTitleAsUTF8());
-  const wstring muxing_app =
-      UTF8ToWideString(segment_info->GetMuxingAppAsUTF8());
-  const wstring writing_app =
-      UTF8ToWideString(segment_info->GetWritingAppAsUTF8());
-
-  fprintf(o, "%sSegmentInfo:", indent->indent_str().c_str());
-  if (options.output_offset)
-    fprintf(o, "  @: %lld", segment_info->m_element_start);
-  if (options.output_size)
-    fprintf(o, "  size: %lld", segment_info->m_element_size);
-  fprintf(o, "\n");
-
-  indent->Adjust(webm_tools::kIncreaseIndent);
-  fprintf(o, "%sTimecodeScale : %lld \n",
-          indent->indent_str().c_str(), timecode_scale);
-  if (options.output_seconds)
-    fprintf(o, "%sDuration(secs): %g\n",
-            indent->indent_str().c_str(), duration_ns / kNanosecondsPerSecond);
-  else
-    fprintf(o, "%sDuration(nano): %lld\n",
-            indent->indent_str().c_str(), duration_ns);
-
-  if (!title.empty())
-    fprintf(o, "%sTitle         : %ls\n",
-            indent->indent_str().c_str(), title.c_str());
-  if (!muxing_app.empty())
-    fprintf(o, "%sMuxingApp     : %ls\n",
-            indent->indent_str().c_str(), muxing_app.c_str());
-  if (!writing_app.empty())
-    fprintf(o, "%sWritingApp    : %ls\n",
-            indent->indent_str().c_str(), writing_app.c_str());
-  indent->Adjust(webm_tools::kDecreaseIndent);
-  return true;
-}
-
-bool OutputTracks(const mkvparser::Segment& segment,
-                  const Options& options,
-                  FILE* o,
-                  Indent* indent) {
-  const mkvparser::Tracks* const tracks = segment.GetTracks();
-  if (!tracks) {
-    fprintf(stderr, "Tracks was NULL.\n");
-    return false;
-  }
-
-  fprintf(o, "%sTracks:", indent->indent_str().c_str());
-  if (options.output_offset)
-    fprintf(o, "  @: %lld", tracks->m_element_start);
-  if (options.output_size)
-    fprintf(o, "  size: %lld", tracks->m_element_size);
-  fprintf(o, "\n");
-
-  unsigned int i = 0;
-  const unsigned int j = tracks->GetTracksCount();
-  while (i != j) {
-    const mkvparser::Track* const track = tracks->GetTrackByIndex(i++);
-    if (track == NULL)
-      continue;
-
-    indent->Adjust(webm_tools::kIncreaseIndent);
-    fprintf(o, "%sTrack:", indent->indent_str().c_str());
-    if (options.output_offset)
-      fprintf(o, "  @: %lld", track->m_element_start);
-    if (options.output_size)
-      fprintf(o, "  size: %lld", track->m_element_size);
-    fprintf(o, "\n");
-
-    const int64 track_type = track->GetType();
-    const int64 track_number = track->GetNumber();
-    const wstring track_name = UTF8ToWideString(track->GetNameAsUTF8());
-
-    indent->Adjust(webm_tools::kIncreaseIndent);
-    fprintf(o, "%sTrackType   : %lld\n",
-            indent->indent_str().c_str(), track_type);
-    fprintf(o, "%sTrackNumber : %lld\n",
-            indent->indent_str().c_str(), track_number);
-    if (!track_name.empty())
-      fprintf(o, "%sName        : %ls\n",
-              indent->indent_str().c_str(), track_name.c_str());
-
-    const char* const codec_id = track->GetCodecId();
-    if (codec_id)
-      fprintf(o, "%sCodecID     : %s\n",
-              indent->indent_str().c_str(), codec_id);
-
-    const wstring codec_name = UTF8ToWideString(track->GetCodecNameAsUTF8());
-    if (!codec_name.empty())
-      fprintf(o, "%sCodecName   : %ls\n",
-              indent->indent_str().c_str(), codec_name.c_str());
-
-    size_t private_size;
-    const unsigned char* const private_data =
-        track->GetCodecPrivate(private_size);
-    if (private_data)
-      fprintf(o, "%sPrivateData(size): %d\n",
-              indent->indent_str().c_str(), static_cast<int>(private_size));
-
-    const uint64 default_duration = track->GetDefaultDuration();
-    if (default_duration > 0)
-      fprintf(o, "%sDefaultDuration: %llu\n",
-              indent->indent_str().c_str(), default_duration);
-
-    if (track->GetContentEncodingCount() > 0) {
-      // Only check the first content encoding.
-      const ContentEncoding* const encoding =
-          track->GetContentEncodingByIndex(0);
-      if (!encoding) {
-        printf("Could not get first ContentEncoding.\n");
-        return false;
-      }
-
-      fprintf(o, "%sContentEncodingOrder : %lld\n",
-              indent->indent_str().c_str(), encoding->encoding_order());
-      fprintf(o, "%sContentEncodingScope : %lld\n",
-              indent->indent_str().c_str(), encoding->encoding_scope());
-      fprintf(o, "%sContentEncodingType  : %lld\n",
-              indent->indent_str().c_str(), encoding->encoding_type());
-
-      if (encoding->GetEncryptionCount() > 0) {
-        // Only check the first encryption.
-        const ContentEncoding::ContentEncryption* const encryption =
-            encoding->GetEncryptionByIndex(0);
-        if (!encryption) {
-          printf("Could not get first ContentEncryption.\n");
-          return false;
-        }
-
-        fprintf(o, "%sContentEncAlgo       : %lld\n",
-                indent->indent_str().c_str(), encryption->algo);
-
-        if (encryption->key_id_len > 0) {
-          fprintf(o, "%sContentEncKeyID      : ",
-                  indent->indent_str().c_str());
-          for (int k = 0; k < encryption->key_id_len; ++k) {
-            fprintf(o, "0x%02x, ", encryption->key_id[k]);
-          }
-          fprintf(o, "\n");
-        }
-
-        if (encryption->signature_len > 0) {
-          fprintf(o, "%sContentSignature     : 0x",
-                  indent->indent_str().c_str());
-          for (int k = 0; k < encryption->signature_len; ++k) {
-            fprintf(o, "%x", encryption->signature[k]);
-          }
-          fprintf(o, "\n");
-        }
-
-        if (encryption->sig_key_id_len > 0) {
-          fprintf(o, "%sContentSigKeyID      : 0x",
-                  indent->indent_str().c_str());
-          for (int k = 0; k < encryption->sig_key_id_len; ++k) {
-            fprintf(o, "%x", encryption->sig_key_id[k]);
-          }
-          fprintf(o, "\n");
-        }
-
-        fprintf(o, "%sContentSigAlgo       : %lld\n",
-                indent->indent_str().c_str(), encryption->sig_algo);
-        fprintf(o, "%sContentSigHashAlgo   : %lld\n",
-                indent->indent_str().c_str(), encryption->sig_hash_algo);
-
-        const ContentEncoding::ContentEncAESSettings& aes =
-            encryption->aes_settings;
-        fprintf(o, "%sCipherMode           : %lld\n",
-                indent->indent_str().c_str(), aes.cipher_mode);
-      }
-    }
-
-    if (track_type == mkvparser::Track::kVideo) {
-      const mkvparser::VideoTrack* const video_track =
-          static_cast<const mkvparser::VideoTrack* const>(track);
-      const int64 width = video_track->GetWidth();
-      const int64 height = video_track->GetHeight();
-      const int64 display_width = video_track->GetDisplayWidth();
-      const int64 display_height = video_track->GetDisplayHeight();
-      const int64 display_unit = video_track->GetDisplayUnit();
-      const double frame_rate = video_track->GetFrameRate();
-      fprintf(o, "%sPixelWidth  : %lld\n",
-              indent->indent_str().c_str(), width);
-      fprintf(o, "%sPixelHeight : %lld\n",
-              indent->indent_str().c_str(), height);
-      if (frame_rate > 0.0)
-        fprintf(o, "%sFrameRate   : %g\n",
-                indent->indent_str().c_str(), video_track->GetFrameRate());
-      if (display_unit > 0 || display_width != width ||
-          display_height != height) {
-        fprintf(o, "%sDisplayWidth  : %lld\n", indent->indent_str().c_str(),
-                display_width);
-        fprintf(o, "%sDisplayHeight : %lld\n", indent->indent_str().c_str(),
-                display_height);
-        fprintf(o, "%sDisplayUnit   : %lld\n", indent->indent_str().c_str(),
-                display_unit);
-      }
-    } else if (track_type == mkvparser::Track::kAudio) {
-      const mkvparser::AudioTrack* const audio_track =
-          static_cast<const mkvparser::AudioTrack* const>(track);
-      const int64 channels = audio_track->GetChannels();
-      const int64 bit_depth = audio_track->GetBitDepth();
-      const uint64 codec_delay = audio_track->GetCodecDelay();
-      const uint64 seek_preroll = audio_track->GetSeekPreRoll();
-      fprintf(o, "%sChannels         : %lld\n",
-              indent->indent_str().c_str(), channels);
-      if (bit_depth > 0)
-        fprintf(o, "%sBitDepth         : %lld\n",
-                indent->indent_str().c_str(), bit_depth);
-      fprintf(o, "%sSamplingFrequency: %g\n",
-              indent->indent_str().c_str(), audio_track->GetSamplingRate());
-      if (codec_delay)
-        fprintf(o, "%sCodecDelay       : %llu\n",
-                indent->indent_str().c_str(), codec_delay);
-      if (seek_preroll)
-        fprintf(o, "%sSeekPreRoll      : %llu\n",
-                indent->indent_str().c_str(), seek_preroll);
-    }
-    indent->Adjust(webm_tools::kDecreaseIndent * 2);
-  }
-
-  return true;
-}
-
-// libvpx reference: vp9/vp9_dx_iface.c
-void ParseSuperframeIndex(const uint8* data, size_t data_sz,
-                          uint32 sizes[8], int* count) {
-  const uint8 marker = data[data_sz - 1];
-  *count = 0;
-
-  if ((marker & 0xe0) == 0xc0) {
-    const int frames = (marker & 0x7) + 1;
-    const int mag = ((marker >> 3) & 0x3) + 1;
-    const size_t index_sz = 2 + mag * frames;
-
-    if (data_sz >= index_sz && data[data_sz - index_sz] == marker) {
-      // found a valid superframe index
-      const uint8* x = data + data_sz - index_sz + 1;
-
-      for (int i = 0; i < frames; ++i) {
-        uint32 this_sz = 0;
-
-        for (int j = 0; j < mag; ++j) {
-          this_sz |= (*x++) << (j * 8);
-        }
-        sizes[i] = this_sz;
-      }
-      *count = frames;
-    }
-  }
-}
-
-void PrintVP9Info(const uint8* data, int size, FILE* o, int64 time_ns,
-                  FrameStats* stats) {
-  if (size < 1) return;
-
-  uint32 sizes[8];
-  int i = 0, count = 0;
-  ParseSuperframeIndex(data, size, sizes, &count);
-
-  // Remove all frames that are less than window size.
-  while (!stats->window.empty() &&
-         stats->window.front() < (time_ns - (kNanosecondsPerSecondi - 1)))
-    stats->window.pop();
-
-  do {
-    // const int frame_marker = (data[0] >> 6) & 0x3;
-    // TODO(jzern): profile > 2 uses 3 bits in the header.
-    const int version = (data[0] >> 4) & 0x3;
-    const int key = !((data[0] >> 2) & 0x1);
-    const int altref_frame = !((data[0] >> 1) & 0x1);
-    const int error_resilient_mode = data[0] & 0x1;
-    if (version > 2) {
-      fprintf(o, " profile > 2 is unsupported");
-      return;
-    }
-
-    if (key &&
-        !(size >= 4 && data[1] == 0x49 && data[2] == 0x83 && data[3] == 0x42)) {
-      fprintf(o, " invalid VP9 signature");
-      return;
-    }
-
-    stats->window.push(time_ns);
-    ++stats->frames;
-
-    if (altref_frame) {
-      const int delta_altref = stats->frames_since_last_altref;
-      if (stats->first_altref) {
-        stats->first_altref = false;
-      } else if (delta_altref < stats->minimum_altref_distance) {
-        stats->minimum_altref_distance = delta_altref;
-        stats->min_altref_end_ns = time_ns;
-      }
-      stats->frames_since_last_altref = 0;
-    } else {
-      ++stats->frames_since_last_altref;
-      ++stats->displayed_frames;
-    }
-
-    if (count > 0) {
-      fprintf(o, " packed [%d]: {", i);
-    }
-
-    fprintf(o, " key:%d v:%d altref:%d errm:%d",
-            key, version, altref_frame, error_resilient_mode);
-
-    if (key && size > 4) {
-      fprintf(o, " cs:%d", (data[4] >> 5) & 0x7);
-    }
-
-    if (count > 0) {
-      fprintf(o, " size: %u }", sizes[i]);
-      data += sizes[i];
-      size -= sizes[i];
-    }
-    ++i;
-  } while (i < count);
-
-  if (stats->max_window_size < static_cast<int64>(stats->window.size())) {
-    stats->max_window_size = stats->window.size();
-    stats->max_window_end_ns = time_ns;
-  }
-}
-
-void PrintVP8Info(const uint8* data, int size, FILE* o) {
-  if (size < 3) return;
-
-  const uint32 bits = data[0] | (data[1] << 8) | (data[2] << 16);
-  const int key = !(bits & 0x1);
-  const int altref_frame = !((bits >> 4) & 0x1);
-  const int version = (bits >> 1) & 0x7;
-  const int partition_length = (bits >> 5) & 0x7FFFF;
-  if (key &&
-      !(size >= 6 && data[3] == 0x9d && data[4] == 0x01 && data[5] == 0x2a)) {
-    fprintf(o, " invalid VP8 signature");
-    return;
-  }
-  fprintf(o, " key:%d v:%d altref:%d partition_length:%d",
-          key, version, altref_frame, partition_length);
-}
-
-bool OutputCluster(const mkvparser::Cluster& cluster,
-                   const mkvparser::Tracks& tracks,
-                   const Options& options,
-                   FILE* o,
-                   mkvparser::MkvReader* reader,
-                   Indent* indent,
-                   int64* clusters_size,
-                   FrameStats* stats) {
-  if (clusters_size) {
-    // Load the Cluster.
-    const mkvparser::BlockEntry* block_entry;
-    int status = cluster.GetFirst(block_entry);
-    if (status) {
-      fprintf(stderr, "Could not get first Block of Cluster.\n");
-      return false;
-    }
-
-    *clusters_size += cluster.GetElementSize();
-  }
-
-  if (options.output_clusters) {
-    const int64 time_ns = cluster.GetTime();
-    const int64 duration_ns = cluster.GetLastTime() - cluster.GetFirstTime();
-
-    fprintf(o, "%sCluster:", indent->indent_str().c_str());
-    if (options.output_offset)
-      fprintf(o, "  @: %lld", cluster.m_element_start);
-    if (options.output_size)
-      fprintf(o, "  size: %lld", cluster.GetElementSize());
-    fprintf(o, "\n");
-    indent->Adjust(webm_tools::kIncreaseIndent);
-    if (options.output_seconds)
-      fprintf(o, "%sTimecode (sec) : %g\n",
-              indent->indent_str().c_str(), time_ns / kNanosecondsPerSecond);
-    else
-      fprintf(o, "%sTimecode (nano): %lld\n",
-              indent->indent_str().c_str(), time_ns);
-    if (options.output_seconds)
-      fprintf(o, "%sDuration (sec) : %g\n",
-              indent->indent_str().c_str(),
-              duration_ns / kNanosecondsPerSecond);
-    else
-      fprintf(o, "%sDuration (nano): %lld\n",
-              indent->indent_str().c_str(), duration_ns);
-
-    fprintf(o, "%s# Blocks       : %ld\n",
-            indent->indent_str().c_str(), cluster.GetEntryCount());
-  }
-
-  if (options.output_blocks) {
-    const mkvparser::BlockEntry* block_entry;
-    int status = cluster.GetFirst(block_entry);
-    if (status) {
-      fprintf(stderr, "Could not get first Block of Cluster.\n");
-      return false;
-    }
-
-    std::vector<unsigned char> vector_data;
-    while (block_entry != NULL && !block_entry->EOS()) {
-      const mkvparser::Block* const block = block_entry->GetBlock();
-      if (!block) {
-        fprintf(stderr, "Could not getblock entry.\n");
-        return false;
-      }
-
-      const unsigned int track_number =
-          static_cast<unsigned int>(block->GetTrackNumber());
-      const mkvparser::Track* track = tracks.GetTrackByNumber(track_number);
-      if (!track) {
-        fprintf(stderr, "Could not get Track.\n");
-        return false;
-      }
-
-      const int64 track_type = track->GetType();
-      if ((track_type == mkvparser::Track::kVideo && options.output_video) ||
-          (track_type == mkvparser::Track::kAudio && options.output_audio)) {
-        const int64 time_ns = block->GetTime(&cluster);
-        const bool is_key = block->IsKey();
-
-        if (block_entry->GetKind() == mkvparser::BlockEntry::kBlockGroup) {
-          fprintf(o, "%sBlockGroup:\n", indent->indent_str().c_str());
-          indent->Adjust(webm_tools::kIncreaseIndent);
-        }
-
-        fprintf(o, "%sBlock: type:%s frame:%s",
-                indent->indent_str().c_str(),
-                track_type == mkvparser::Track::kVideo ? "V" : "A",
-                is_key ? "I" : "P");
-        if (options.output_seconds)
-          fprintf(o, " secs:%5g", time_ns / kNanosecondsPerSecond);
-        else
-          fprintf(o, " nano:%10lld", time_ns);
-
-        if (options.output_offset)
-          fprintf(o, " @_payload: %lld", block->m_start);
-        if (options.output_size)
-          fprintf(o, " size_payload: %lld", block->m_size);
-
-        const uint8 KEncryptedBit = 0x1;
-        const int kSignalByteSize = 1;
-        bool encrypted_stream = false;
-        if (options.output_encrypted_info) {
-          if (track->GetContentEncodingCount() > 0) {
-            // Only check the first content encoding.
-            const ContentEncoding* const encoding =
-                track->GetContentEncodingByIndex(0);
-            if (encoding) {
-              if (encoding->GetEncryptionCount() > 0) {
-                const ContentEncoding::ContentEncryption* const encryption =
-                    encoding->GetEncryptionByIndex(0);
-                if (encryption) {
-                  const ContentEncoding::ContentEncAESSettings& aes =
-                      encryption->aes_settings;
-                  if (aes.cipher_mode == 1) {
-                    encrypted_stream = true;
-                  }
-                }
-              }
-            }
-          }
-
-          if (encrypted_stream) {
-            const mkvparser::Block::Frame& frame = block->GetFrame(0);
-            if (frame.len > static_cast<int>(vector_data.size())) {
-              vector_data.resize(frame.len + 1024);
-            }
-
-            unsigned char* data = &vector_data[0];
-            if (frame.Read(reader, data) < 0) {
-              fprintf(stderr, "Could not read frame.\n");
-              return false;
-            }
-
-            const bool encrypted_frame = (data[0] & KEncryptedBit) ? 1 : 0;
-            fprintf(o, " enc: %d", encrypted_frame ? 1 : 0);
-
-            if (encrypted_frame) {
-              uint64 iv;
-              memcpy(&iv, data + kSignalByteSize, sizeof(iv));
-              fprintf(o, " iv: %llx", iv);
-            }
-          }
-        }
-
-        if (options.output_codec_info) {
-          const int frame_count = block->GetFrameCount();
-
-          if (frame_count > 1) {
-            fprintf(o, "\n");
-            indent->Adjust(webm_tools::kIncreaseIndent);
-          }
-
-          for (int i = 0; i < frame_count; ++i) {
-            if (track_type == mkvparser::Track::kVideo) {
-              const mkvparser::Block::Frame& frame = block->GetFrame(i);
-              if (frame.len > static_cast<int>(vector_data.size())) {
-                vector_data.resize(frame.len + 1024);
-              }
-
-              unsigned char* data = &vector_data[0];
-              if (frame.Read(reader, data) < 0) {
-                fprintf(stderr, "Could not read frame.\n");
-                return false;
-              }
-
-              if (frame_count > 1)
-                fprintf(o, "\n%sVP8 data     :", indent->indent_str().c_str());
-
-              bool encrypted_frame = false;
-              int frame_offset = 0;
-              if (encrypted_stream) {
-                if (data[0] & KEncryptedBit) {
-                  encrypted_frame = true;
-                } else {
-                  frame_offset = kSignalByteSize;
-                }
-              }
-
-              if (!encrypted_frame) {
-                data += frame_offset;
-
-                const string codec_id = track->GetCodecId();
-                if (codec_id == "V_VP8") {
-                  PrintVP8Info(data, frame.len, o);
-                } else if (codec_id == "V_VP9") {
-                  PrintVP9Info(data, frame.len, o, time_ns, stats);
-                }
-              }
-            }
-          }
-
-          if (frame_count > 1)
-            indent->Adjust(webm_tools::kDecreaseIndent);
-        }
-
-        if (block_entry->GetKind() == mkvparser::BlockEntry::kBlockGroup) {
-          const int64 discard_padding = block->GetDiscardPadding();
-          if (discard_padding != 0) {
-            fprintf(o, "\n%sDiscardPadding: %10lld",
-                    indent->indent_str().c_str(), discard_padding);
-          }
-          indent->Adjust(webm_tools::kDecreaseIndent);
-        }
-
-        fprintf(o, "\n");
-      }
-
-      status = cluster.GetNext(block_entry, block_entry);
-      if (status) {
-        printf("\n Could not get next block of cluster.\n");
-        return false;
-      }
-    }
-  }
-
-  if (options.output_clusters)
-    indent->Adjust(webm_tools::kDecreaseIndent);
-
-  return true;
-}
-
-bool OutputCues(const mkvparser::Segment& segment,
-                const mkvparser::Tracks& tracks,
-                const Options& options,
-                FILE* o,
-                Indent* indent) {
-  const mkvparser::Cues* const cues = segment.GetCues();
-  if (cues == NULL)
-    return true;
-
-  // Load all of the cue points.
-  while (!cues->DoneParsing())
-    cues->LoadCuePoint();
-
-  // Confirm that the input has cue points.
-  const mkvparser::CuePoint* const first_cue = cues->GetFirst();
-  if (first_cue == NULL) {
-    fprintf(o, "%sNo cue points.\n", indent->indent_str().c_str());
-    return true;
-  }
-
-  // Input has cue points, dump them:
-  fprintf(o, "%sCues:", indent->indent_str().c_str());
-  if (options.output_offset)
-    fprintf(o, " @:%lld", cues->m_element_start);
-  if (options.output_size)
-    fprintf(o, " size:%lld", cues->m_element_size);
-  fprintf(o, "\n");
-
-  const mkvparser::CuePoint* cue_point = first_cue;
-  int cue_point_num = 1;
-  const int num_tracks = tracks.GetTracksCount();
-  indent->Adjust(webm_tools::kIncreaseIndent);
-
-  do {
-    for (int track_num = 1; track_num <= num_tracks; ++track_num) {
-      const mkvparser::Track* const track = tracks.GetTrackByNumber(track_num);
-      const mkvparser::CuePoint::TrackPosition* const track_pos =
-          cue_point->Find(track);
-
-      if (track_pos != NULL) {
-        const char track_type =
-            (track->GetType() == mkvparser::Track::kVideo) ? 'V' : 'A';
-        fprintf(o, "%sCue Point:%d type:%c track:%d",
-                indent->indent_str().c_str(), cue_point_num,
-                track_type, track_num);
-
-        if (options.output_seconds) {
-          fprintf(o, " secs:%g",
-                  cue_point->GetTime(&segment) / kNanosecondsPerSecond);
-        } else {
-          fprintf(o, " nano:%lld", cue_point->GetTime(&segment));
-        }
-
-        if (options.output_blocks)
-          fprintf(o, " block:%lld", track_pos->m_block);
-
-        if (options.output_offset)
-          fprintf(o, " @:%lld", track_pos->m_pos);
-
-        fprintf(o, "\n");
-      }
-    }
-
-    cue_point = cues->GetNext(cue_point);
-    ++cue_point_num;
-  } while (cue_point != NULL);
-
-  indent->Adjust(webm_tools::kDecreaseIndent);
-  return true;
-}
-
-}  // namespace
-
-int main(int argc, char* argv[]) {
-  string input;
-  Options options;
-
-  const int argc_check = argc - 1;
-  for (int i = 1; i < argc; ++i) {
-    if (!strcmp("-h", argv[i]) || !strcmp("-?", argv[i])) {
-      Usage();
-      return EXIT_SUCCESS;
-    } else if (!strcmp("-v", argv[i])) {
-      printf("version: %s\n", VERSION_STRING);
-    } else if (!strcmp("-i", argv[i]) && i < argc_check) {
-      input = argv[++i];
-    } else if (!strcmp("-all", argv[i])) {
-      options.SetAll(true);
-    } else if (Options::MatchesBooleanOption("video", argv[i])) {
-      options.output_video = !strcmp("-video", argv[i]);
-    } else if (Options::MatchesBooleanOption("audio", argv[i])) {
-      options.output_audio = !strcmp("-audio", argv[i]);
-    } else if (Options::MatchesBooleanOption("size", argv[i])) {
-      options.output_size = !strcmp("-size", argv[i]);
-    } else if (Options::MatchesBooleanOption("offset", argv[i])) {
-      options.output_offset = !strcmp("-offset", argv[i]);
-    } else if (Options::MatchesBooleanOption("times_seconds", argv[i])) {
-      options.output_seconds = !strcmp("-times_seconds", argv[i]);
-    } else if (Options::MatchesBooleanOption("ebml_header", argv[i])) {
-      options.output_ebml_header = !strcmp("-ebml_header", argv[i]);
-    } else if (Options::MatchesBooleanOption("segment", argv[i])) {
-      options.output_segment = !strcmp("-segment", argv[i]);
-    } else if (Options::MatchesBooleanOption("seekhead", argv[i])) {
-      options.output_seekhead = !strcmp("-seekhead", argv[i]);
-    } else if (Options::MatchesBooleanOption("segment_info", argv[i])) {
-      options.output_segment_info = !strcmp("-segment_info", argv[i]);
-    } else if (Options::MatchesBooleanOption("tracks", argv[i])) {
-      options.output_tracks = !strcmp("-tracks", argv[i]);
-    } else if (Options::MatchesBooleanOption("clusters", argv[i])) {
-      options.output_clusters = !strcmp("-clusters", argv[i]);
-    } else if (Options::MatchesBooleanOption("blocks", argv[i])) {
-      options.output_blocks = !strcmp("-blocks", argv[i]);
-    } else if (Options::MatchesBooleanOption("codec_info", argv[i])) {
-      options.output_codec_info = !strcmp("-codec_info", argv[i]);
-    } else if (Options::MatchesBooleanOption("clusters_size", argv[i])) {
-      options.output_clusters_size = !strcmp("-clusters_size", argv[i]);
-    } else if (Options::MatchesBooleanOption("encrypted_info", argv[i])) {
-      options.output_encrypted_info = !strcmp("-encrypted_info", argv[i]);
-    } else if (Options::MatchesBooleanOption("cues", argv[i])) {
-      options.output_cues = !strcmp("-cues", argv[i]);
-    } else if (Options::MatchesBooleanOption("frame_stats", argv[i])) {
-      options.output_frame_stats = !strcmp("-frame_stats", argv[i]);
-    }
-  }
-
-  if (argc < 3 || input.empty()) {
-    Usage();
-    return EXIT_FAILURE;
-  }
-
-  // TODO(fgalligan): Replace auto_ptr with scoped_ptr.
-  std::auto_ptr<mkvparser::MkvReader>
-      reader(new (std::nothrow) mkvparser::MkvReader());  // NOLINT
-  if (reader->Open(input.c_str())) {
-    fprintf(stderr, "Error opening file:%s\n", input.c_str());
-    return EXIT_FAILURE;
-  }
-
-  int64 pos = 0;
-  std::auto_ptr<mkvparser::EBMLHeader>
-      ebml_header(new (std::nothrow) mkvparser::EBMLHeader());  // NOLINT
-  if (ebml_header->Parse(reader.get(), pos) < 0) {
-    fprintf(stderr, "Error parsing EBML header.\n");
-    return EXIT_FAILURE;
-  }
-
-  Indent indent(0);
-  FILE* out = stdout;
-
-  if (options.output_ebml_header)
-    OutputEBMLHeader(*ebml_header.get(), out, &indent);
-
-  mkvparser::Segment* temp_segment;
-  if (mkvparser::Segment::CreateInstance(reader.get(), pos, temp_segment)) {
-    fprintf(stderr, "Segment::CreateInstance() failed.\n");
-    return EXIT_FAILURE;
-  }
-  std::auto_ptr<mkvparser::Segment> segment(temp_segment);
-
-  if (segment->Load() < 0) {
-      fprintf(stderr, "Segment::Load() failed.\n");
-      return EXIT_FAILURE;
-  }
-
-  if (options.output_segment) {
-    OutputSegment(*(segment.get()), options, out);
-    indent.Adjust(webm_tools::kIncreaseIndent);
-  }
-
-  if (options.output_seekhead)
-    if (!OutputSeekHead(*(segment.get()), options, out, &indent))
-      return EXIT_FAILURE;
-
-  if (options.output_segment_info)
-    if (!OutputSegmentInfo(*(segment.get()), options, out, &indent))
-      return EXIT_FAILURE;
-
-  if (options.output_tracks)
-    if (!OutputTracks(*(segment.get()), options, out, &indent))
-      return EXIT_FAILURE;
-
-  const mkvparser::Tracks* const tracks = segment->GetTracks();
-  if (!tracks) {
-    fprintf(stderr, "Could not get Tracks.\n");
-    return EXIT_FAILURE;
-  }
-
-  // If Cues are before the clusters output them first.
-  if (options.output_cues) {
-    const mkvparser::Cluster* cluster = segment->GetFirst();
-    const mkvparser::Cues* const cues = segment->GetCues();
-    if (cluster != NULL && cues != NULL) {
-      if (cues->m_element_start < cluster->m_element_start) {
-        if (!OutputCues(*segment, *tracks, options, out, &indent)) {
-          return EXIT_FAILURE;
-        }
-        options.output_cues = false;
-      }
-    }
-  }
-
-  if (options.output_clusters)
-    fprintf(out, "%sClusters (count):%ld\n",
-            indent.indent_str().c_str(), segment->GetCount());
-
-  int64 clusters_size = 0;
-  FrameStats stats;
-  const mkvparser::Cluster* cluster = segment->GetFirst();
-  while (cluster != NULL && !cluster->EOS()) {
-    if (!OutputCluster(*cluster,
-                       *tracks,
-                       options,
-                       out,
-                       reader.get(),
-                       &indent,
-                       &clusters_size,
-                       &stats))
-      return EXIT_FAILURE;
-    cluster = segment->GetNext(cluster);
-  }
-
-  if (options.output_clusters_size)
-    fprintf(out, "%sClusters (size):%lld\n",
-            indent.indent_str().c_str(), clusters_size);
-
-  if (options.output_cues)
-    if (!OutputCues(*segment, *tracks, options, out, &indent))
-      return EXIT_FAILURE;
-
-  // TODO(fgalligan): Add support for VP8.
-  if (options.output_frame_stats &&
-      stats.minimum_altref_distance != std::numeric_limits<int>::max()) {
-    const double actual_fps =
-        stats.frames / (segment->GetInfo()->GetDuration() /
-                        kNanosecondsPerSecond);
-    const double displayed_fps =
-        stats.displayed_frames / (segment->GetInfo()->GetDuration() /
-                                  kNanosecondsPerSecond);
-    fprintf(out, "\nActual fps:%g  Displayed fps:%g\n",
-            actual_fps, displayed_fps);
-
-    fprintf(out, "Minimum Altref Distance:%d  at:%g seconds\n",
-            stats.minimum_altref_distance,
-            stats.min_altref_end_ns / kNanosecondsPerSecond);
-
-    // TODO(fgalligan): Add support for window duration other than 1 second.
-    const double sec_end = stats.max_window_end_ns / kNanosecondsPerSecond;
-    const double sec_start =
-        stats.max_window_end_ns > kNanosecondsPerSecondi ? sec_end - 1.0 : 0.0;
-    fprintf(out, "Maximum Window:%g-%g seconds  Window fps:%lld\n",
-            sec_start, sec_end, stats.max_window_size);
-  }
-  return EXIT_SUCCESS;
-}
diff --git a/webm_info/webm_info.sln b/webm_info/webm_info.sln
deleted file mode 100644
index d4b678b..0000000
--- a/webm_info/webm_info.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-

-Microsoft Visual Studio Solution File, Format Version 10.00

-# Visual Studio 2008

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webm_info", "webm_info.vcproj", "{9F7D9C27-6007-4D99-A597-A0FA3FA52895}"

-EndProject

-Global

-	GlobalSection(SolutionConfigurationPlatforms) = preSolution

-		Debug|Win32 = Debug|Win32

-		Release|Win32 = Release|Win32

-	EndGlobalSection

-	GlobalSection(ProjectConfigurationPlatforms) = postSolution

-		{9F7D9C27-6007-4D99-A597-A0FA3FA52895}.Debug|Win32.ActiveCfg = Debug|Win32

-		{9F7D9C27-6007-4D99-A597-A0FA3FA52895}.Debug|Win32.Build.0 = Debug|Win32

-		{9F7D9C27-6007-4D99-A597-A0FA3FA52895}.Release|Win32.ActiveCfg = Release|Win32

-		{9F7D9C27-6007-4D99-A597-A0FA3FA52895}.Release|Win32.Build.0 = Release|Win32

-	EndGlobalSection

-	GlobalSection(SolutionProperties) = preSolution

-		HideSolutionNode = FALSE

-	EndGlobalSection

-EndGlobal

diff --git a/webm_info/webm_info.vcproj b/webm_info/webm_info.vcproj
deleted file mode 100644
index 75961a1..0000000
--- a/webm_info/webm_info.vcproj
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>

-<VisualStudioProject

-	ProjectType="Visual C++"

-	Version="9.00"

-	Name="webm_info"

-	ProjectGUID="{9F7D9C27-6007-4D99-A597-A0FA3FA52895}"

-	RootNamespace="webm_info"

-	Keyword="Win32Proj"

-	TargetFrameworkVersion="196613"

-	>

-	<Platforms>

-		<Platform

-			Name="Win32"

-		/>

-	</Platforms>

-	<ToolFiles>

-	</ToolFiles>

-	<Configurations>

-		<Configuration

-			Name="Debug|Win32"

-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"

-			IntermediateDirectory="$(ConfigurationName)"

-			ConfigurationType="1"

-			CharacterSet="1"

-			>

-			<Tool

-				Name="VCPreBuildEventTool"

-			/>

-			<Tool

-				Name="VCCustomBuildTool"

-			/>

-			<Tool

-				Name="VCXMLDataGeneratorTool"

-			/>

-			<Tool

-				Name="VCWebServiceProxyGeneratorTool"

-			/>

-			<Tool

-				Name="VCMIDLTool"

-			/>

-			<Tool

-				Name="VCCLCompilerTool"

-				Optimization="0"

-				AdditionalIncludeDirectories="../../libwebm;../shared"

-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"

-				MinimalRebuild="true"

-				BasicRuntimeChecks="3"

-				RuntimeLibrary="1"

-				UsePrecompiledHeader="0"

-				WarningLevel="4"

-				DebugInformationFormat="4"

-			/>

-			<Tool

-				Name="VCManagedResourceCompilerTool"

-			/>

-			<Tool

-				Name="VCResourceCompilerTool"

-			/>

-			<Tool

-				Name="VCPreLinkEventTool"

-			/>

-			<Tool

-				Name="VCLinkerTool"

-				AdditionalDependencies="libwebm.lib"

-				LinkIncremental="2"

-				AdditionalLibraryDirectories="..\..\libwebm\Debug"

-				GenerateDebugInformation="true"

-				SubSystem="1"

-				TargetMachine="1"

-			/>

-			<Tool

-				Name="VCALinkTool"

-			/>

-			<Tool

-				Name="VCManifestTool"

-			/>

-			<Tool

-				Name="VCXDCMakeTool"

-			/>

-			<Tool

-				Name="VCBscMakeTool"

-			/>

-			<Tool

-				Name="VCFxCopTool"

-			/>

-			<Tool

-				Name="VCAppVerifierTool"

-			/>

-			<Tool

-				Name="VCPostBuildEventTool"

-			/>

-		</Configuration>

-		<Configuration

-			Name="Release|Win32"

-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"

-			IntermediateDirectory="$(ConfigurationName)"

-			ConfigurationType="1"

-			CharacterSet="1"

-			WholeProgramOptimization="1"

-			>

-			<Tool

-				Name="VCPreBuildEventTool"

-			/>

-			<Tool

-				Name="VCCustomBuildTool"

-			/>

-			<Tool

-				Name="VCXMLDataGeneratorTool"

-			/>

-			<Tool

-				Name="VCWebServiceProxyGeneratorTool"

-			/>

-			<Tool

-				Name="VCMIDLTool"

-			/>

-			<Tool

-				Name="VCCLCompilerTool"

-				Optimization="2"

-				EnableIntrinsicFunctions="true"

-				AdditionalIncludeDirectories="../../libwebm;../shared"

-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"

-				RuntimeLibrary="0"

-				EnableFunctionLevelLinking="true"

-				UsePrecompiledHeader="0"

-				WarningLevel="4"

-				DebugInformationFormat="3"

-			/>

-			<Tool

-				Name="VCManagedResourceCompilerTool"

-			/>

-			<Tool

-				Name="VCResourceCompilerTool"

-			/>

-			<Tool

-				Name="VCPreLinkEventTool"

-			/>

-			<Tool

-				Name="VCLinkerTool"

-				AdditionalDependencies="libwebm.lib"

-				LinkIncremental="1"

-				AdditionalLibraryDirectories="..\..\libwebm\Release"

-				GenerateDebugInformation="true"

-				SubSystem="1"

-				OptimizeReferences="2"

-				EnableCOMDATFolding="2"

-				TargetMachine="1"

-			/>

-			<Tool

-				Name="VCALinkTool"

-			/>

-			<Tool

-				Name="VCManifestTool"

-			/>

-			<Tool

-				Name="VCXDCMakeTool"

-			/>

-			<Tool

-				Name="VCBscMakeTool"

-			/>

-			<Tool

-				Name="VCFxCopTool"

-			/>

-			<Tool

-				Name="VCAppVerifierTool"

-			/>

-			<Tool

-				Name="VCPostBuildEventTool"

-			/>

-		</Configuration>

-	</Configurations>

-	<References>

-	</References>

-	<Files>

-		<Filter

-			Name="Source Files"

-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"

-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"

-			>

-			<File

-				RelativePath="..\shared\indent.cc"

-				>

-			</File>

-			<File

-				RelativePath="..\shared\webm_endian.cc"

-				>

-			</File>

-			<File

-				RelativePath=".\webm_info.cc"

-				>

-			</File>

-		</Filter>

-		<Filter

-			Name="Header Files"

-			Filter="h;hpp;hxx;hm;inl;inc;xsd"

-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"

-			>

-			<File

-				RelativePath="..\shared\indent.h"

-				>

-			</File>

-			<File

-				RelativePath="..\shared\webm_endian.h"

-				>

-			</File>

-		</Filter>

-		<Filter

-			Name="Resource Files"

-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"

-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"

-			>

-		</Filter>

-	</Files>

-	<Globals>

-	</Globals>

-</VisualStudioProject>

diff --git a/webm_info/webm_info_2013.sln b/webm_info/webm_info_2013.sln
deleted file mode 100644
index d441eb1..0000000
--- a/webm_info/webm_info_2013.sln
+++ /dev/null
@@ -1,22 +0,0 @@
-

-Microsoft Visual Studio Solution File, Format Version 12.00

-# Visual Studio 2013

-VisualStudioVersion = 12.0.21005.1

-MinimumVisualStudioVersion = 10.0.40219.1

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webm_info", "webm_info_2013.vcxproj", "{9F7D9C27-6007-4D99-A597-A0FA3FA52895}"

-EndProject

-Global

-	GlobalSection(SolutionConfigurationPlatforms) = preSolution

-		Debug|Win32 = Debug|Win32

-		Release|Win32 = Release|Win32

-	EndGlobalSection

-	GlobalSection(ProjectConfigurationPlatforms) = postSolution

-		{9F7D9C27-6007-4D99-A597-A0FA3FA52895}.Debug|Win32.ActiveCfg = Debug|Win32

-		{9F7D9C27-6007-4D99-A597-A0FA3FA52895}.Debug|Win32.Build.0 = Debug|Win32

-		{9F7D9C27-6007-4D99-A597-A0FA3FA52895}.Release|Win32.ActiveCfg = Release|Win32

-		{9F7D9C27-6007-4D99-A597-A0FA3FA52895}.Release|Win32.Build.0 = Release|Win32

-	EndGlobalSection

-	GlobalSection(SolutionProperties) = preSolution

-		HideSolutionNode = FALSE

-	EndGlobalSection

-EndGlobal

diff --git a/webm_info/webm_info_2013.vcxproj b/webm_info/webm_info_2013.vcxproj
deleted file mode 100644
index 348881e..0000000
--- a/webm_info/webm_info_2013.vcxproj
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

-  <ItemGroup Label="ProjectConfigurations">

-    <ProjectConfiguration Include="Debug|Win32">

-      <Configuration>Debug</Configuration>

-      <Platform>Win32</Platform>

-    </ProjectConfiguration>

-    <ProjectConfiguration Include="Release|Win32">

-      <Configuration>Release</Configuration>

-      <Platform>Win32</Platform>

-    </ProjectConfiguration>

-  </ItemGroup>

-  <PropertyGroup Label="Globals">

-    <ProjectName>webm_info</ProjectName>

-    <ProjectGuid>{9F7D9C27-6007-4D99-A597-A0FA3FA52895}</ProjectGuid>

-    <RootNamespace>webm_info</RootNamespace>

-    <Keyword>Win32Proj</Keyword>

-  </PropertyGroup>

-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

-    <ConfigurationType>Application</ConfigurationType>

-    <PlatformToolset>v120</PlatformToolset>

-    <CharacterSet>Unicode</CharacterSet>

-    <WholeProgramOptimization>true</WholeProgramOptimization>

-  </PropertyGroup>

-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

-    <ConfigurationType>Application</ConfigurationType>

-    <PlatformToolset>v120</PlatformToolset>

-    <CharacterSet>Unicode</CharacterSet>

-  </PropertyGroup>

-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

-  <ImportGroup Label="ExtensionSettings">

-  </ImportGroup>

-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">

-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

-  </ImportGroup>

-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">

-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

-  </ImportGroup>

-  <PropertyGroup Label="UserMacros" />

-  <PropertyGroup>

-    <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>

-  </PropertyGroup>

-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

-    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>

-    <IntDir>$(Configuration)\</IntDir>

-    <LinkIncremental>true</LinkIncremental>

-  </PropertyGroup>

-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

-    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>

-    <IntDir>$(Configuration)\</IntDir>

-    <LinkIncremental>false</LinkIncremental>

-  </PropertyGroup>

-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

-    <ClCompile>

-      <Optimization>Disabled</Optimization>

-      <AdditionalIncludeDirectories>../../libwebm;../shared;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

-      <MinimalRebuild>true</MinimalRebuild>

-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

-      <PrecompiledHeader />

-      <WarningLevel>Level4</WarningLevel>

-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

-    </ClCompile>

-    <Link>

-      <AdditionalDependencies>libwebm.lib;%(AdditionalDependencies)</AdditionalDependencies>

-      <AdditionalLibraryDirectories>..\..\lib\libwebm_2013\libwebm\Win32\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

-      <GenerateDebugInformation>true</GenerateDebugInformation>

-      <SubSystem>Console</SubSystem>

-      <TargetMachine>MachineX86</TargetMachine>

-    </Link>

-  </ItemDefinitionGroup>

-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

-    <ClCompile>

-      <Optimization>MaxSpeed</Optimization>

-      <IntrinsicFunctions>true</IntrinsicFunctions>

-      <AdditionalIncludeDirectories>../../libwebm;../shared;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

-      <FunctionLevelLinking>true</FunctionLevelLinking>

-      <PrecompiledHeader />

-      <WarningLevel>Level4</WarningLevel>

-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

-    </ClCompile>

-    <Link>

-      <AdditionalDependencies>libwebm.lib;%(AdditionalDependencies)</AdditionalDependencies>

-      <AdditionalLibraryDirectories>..\..\lib\libwebm_2013\libwebm\Win32\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

-      <GenerateDebugInformation>true</GenerateDebugInformation>

-      <SubSystem>Console</SubSystem>

-      <OptimizeReferences>true</OptimizeReferences>

-      <EnableCOMDATFolding>true</EnableCOMDATFolding>

-      <TargetMachine>MachineX86</TargetMachine>

-    </Link>

-  </ItemDefinitionGroup>

-  <ItemGroup>

-    <ClCompile Include="..\shared\indent.cc" />

-    <ClCompile Include="..\shared\webm_endian.cc" />

-    <ClCompile Include="webm_info.cc" />

-  </ItemGroup>

-  <ItemGroup>

-    <ClInclude Include="..\shared\indent.h" />

-    <ClInclude Include="..\shared\webm_endian.h" />

-  </ItemGroup>

-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

-  <ImportGroup Label="ExtensionTargets">

-  </ImportGroup>

-</Project>
\ No newline at end of file
diff --git a/webm_info/webm_info_2013.vcxproj.filters b/webm_info/webm_info_2013.vcxproj.filters
deleted file mode 100644
index 7a58afa..0000000
--- a/webm_info/webm_info_2013.vcxproj.filters
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

-  <ItemGroup>

-    <Filter Include="Source Files">

-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>

-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>

-    </Filter>

-    <Filter Include="Header Files">

-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>

-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>

-    </Filter>

-    <Filter Include="Resource Files">

-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>

-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>

-    </Filter>

-  </ItemGroup>

-  <ItemGroup>

-    <ClCompile Include="..\shared\indent.cc">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="..\shared\webm_endian.cc">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="webm_info.cc">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-  </ItemGroup>

-  <ItemGroup>

-    <ClInclude Include="..\shared\indent.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-    <ClInclude Include="..\shared\webm_endian.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-  </ItemGroup>

-</Project>
\ No newline at end of file