///////////////////////////////////////////////////////////////////////////////
//
//  The contents of this file are subject to the Mozilla Public License
//  Version 1.1 (the "License"); you may not use this file except in
//  compliance with the License. You may obtain a copy of the License at
//  http://www.mozilla.org/MPL/
//
//  Software distributed under the License is distributed on an "AS IS"
//  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
//  License for the specific language governing rights and limitations
//  under the License.
//
//  The Original Code is MP4v2.
//
//  The Initial Developer of the Original Code is Kona Blend.
//  Portions created by Kona Blend are Copyright (C) 2008.
//  All Rights Reserved.
//
//  Contributors:
//      Kona Blend, kona8lend@@gmail.com
//
///////////////////////////////////////////////////////////////////////////////

#ifndef MP4V2_PROJECT_H
#define MP4V2_PROJECT_H

/*****************************************************************************/

#define MP4V2_PROJECT_name            "MP4v2"
#define MP4V2_PROJECT_name_lower      "mp4v2"
#define MP4V2_PROJECT_name_upper      "MP4V2"
#define MP4V2_PROJECT_name_formal     "MP4v2 -r"
#define MP4V2_PROJECT_url_website     "http://code.google.com/p/mp4v2"
#define MP4V2_PROJECT_url_downloads   "http://code.google.com/p/mp4v2/downloads/list"
#define MP4V2_PROJECT_url_discussion  "http://groups.google.com/group/mp4v2"
#define MP4V2_PROJECT_irc             "irc://irc.freenode.net/handbrake"
#define MP4V2_PROJECT_bugreport       "<kidjan@gmail.com>"
#define MP4V2_PROJECT_version         "-r"
#define MP4V2_PROJECT_version_hex     0x00020100
#define MP4V2_PROJECT_version_major   2
#define MP4V2_PROJECT_version_minor   1
#define MP4V2_PROJECT_version_point   0
#define MP4V2_PROJECT_repo_url        "svn://nowhere.com/project/unknown"
#define MP4V2_PROJECT_repo_branch     "unknown"
#define MP4V2_PROJECT_repo_root       "svn://nowhere.com/project"
#define MP4V2_PROJECT_repo_uuid       "00000000-0000-0000-0000-000000000000"
#define MP4V2_PROJECT_repo_rev        0
#define MP4V2_PROJECT_repo_date       "unknown"
#define MP4V2_PROJECT_repo_type       "developer"
#define MP4V2_PROJECT_build           "Tue Nov 15 12:09:50 PST 2016"

/*****************************************************************************/

#endif /* MP4V2_PROJECT_H */
