// Path: player-android/src/org/videolan/libvlc/Media.java
// public static abstract class Track {
//     public static class Type {
//         public static final int Unknown = -1;
//         public static final int Audio = 0;
//         public static final int Video = 1;
//         public static final int Text = 2;
//     }
// 
//     public final int type;
//     public final String codec;
//     public final String originalCodec;
//     public final int id;
//     public final int profile;
//     public final int level;
//     public final int bitrate;
//     public final String language;
//     public final String description;
// 
//     private Track(int type, String codec, String originalCodec, int id, int profile,
//             int level, int bitrate, String language, String description) {
//         this.type = type;
//         this.codec = codec;
//         this.originalCodec = originalCodec;
//         this.id = id;
//         this.profile = profile;
//         this.level = level;
//         this.bitrate = bitrate;
//         this.language = language;
//         this.description = description;
//     }
// }
// 
// Path: player-android/src/org/videolan/libvlc/util/AndroidUtil.java
// public class AndroidUtil {
//     public static boolean isFroyoOrLater() {
//         return android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.FROYO;
//     }
// 
//     public static boolean isGingerbreadOrLater() {
//         return android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD;
//     }
// 
//     public static boolean isHoneycombOrLater() {
//         return android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB;
//     }
// 
//     public static boolean isHoneycombMr1OrLater() {
//         return android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1;
//     }
// 
//     public static boolean isICSOrLater() {
//         return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
//     }
// 
//     public static boolean isJellyBeanOrLater() {
//         return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
//     }
// 
//     public static boolean isJellyBeanMR1OrLater() {
//         return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1;
//     }
// 
//     public static boolean isJellyBeanMR2OrLater() {
//         return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
//     }
// 
//     public static File UriToFile(Uri uri) {
//         return new File(uri.getPath().replaceFirst("file://", ""));
//     }
// 
//     /**
//      * Quickly converts path to URIs, which are mandatory in libVLC.
//      *
//      * @param path The path to be converted.
//      * @return A URI representation of path
//      */
//     public static Uri PathToUri(String path) {
//         return Uri.fromFile(new File(path));
//     }
// 
//     public static Uri LocationToUri(String location) {
//         Uri uri = Uri.parse(location);
//         if (uri.getScheme() == null)
//             throw new IllegalArgumentException("location has no scheme");
//         return uri;
//     }
// 
//     public static Uri FileToUri(File file) {
//         return Uri.fromFile(file);
//     }
// }


import java.io.FileDescriptor;
import org.videolan.libvlc.Media.Track;
import org.videolan.libvlc.util.AndroidUtil;
import org.videolan.libvlc.util.HWDecoderUtil;
import android.net.Uri;
    }

    /**
     * see libvlc_state_t
     */
    public static class State {
        public static final int NothingSpecial = 0;
        public static final int Opening = 1;
        public static final int Buffering = 2;
        public static final int Playing = 3;
        public static final int Paused = 4;
        public static final int Stopped = 5;
        public static final int Ended = 6;
        public static final int Error = 7;
        public static final int MAX = 8;
    }

    /**
     * see libvlc_media_parse_flag_t
     */
    public static class Parse {
        public static final int ParseLocal   = 0;
        public static final int ParseNetwork = 0x01;
        public static final int FetchLocal   = 0x02;
        public static final int FetchNetwork = 0x04;
    }

    /**
     * see libvlc_media_track_t
     */
// Path: player-android/src/org/videolan/libvlc/Media.java
// public static abstract class Track {
//     public static class Type {
//         public static final int Unknown = -1;
//         public static final int Audio = 0;
//         public static final int Video = 1;
//         public static final int Text = 2;
//     }
// 
//     public final int type;
//     public final String codec;
//     public final String originalCodec;
//     public final int id;
//     public final int profile;
//     public final int level;
//     public final int bitrate;
//     public final String language;
//     public final String description;
// 
//     private Track(int type, String codec, String originalCodec, int id, int profile,
//             int level, int bitrate, String language, String description) {
//         this.type = type;
//         this.codec = codec;
//         this.originalCodec = originalCodec;
//         this.id = id;
//         this.profile = profile;
//         this.level = level;
//         this.bitrate = bitrate;
//         this.language = language;
//         this.description = description;
//     }
// }
// 
// Path: player-android/src/org/videolan/libvlc/util/AndroidUtil.java
// public class AndroidUtil {
//     public static boolean isFroyoOrLater() {
//         return android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.FROYO;
//     }
// 
//     public static boolean isGingerbreadOrLater() {
//         return android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD;
//     }
// 
//     public static boolean isHoneycombOrLater() {
//         return android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB;
//     }
// 
//     public static boolean isHoneycombMr1OrLater() {
//         return android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1;
//     }
// 
//     public static boolean isICSOrLater() {
//         return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
//     }
// 
//     public static boolean isJellyBeanOrLater() {
//         return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
//     }
// 
//     public static boolean isJellyBeanMR1OrLater() {
//         return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1;
//     }
// 
//     public static boolean isJellyBeanMR2OrLater() {
//         return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
//     }
// 
//     public static File UriToFile(Uri uri) {
//         return new File(uri.getPath().replaceFirst("file://", ""));
//     }
// 
//     /**
//      * Quickly converts path to URIs, which are mandatory in libVLC.
//      *
//      * @param path The path to be converted.
//      * @return A URI representation of path
//      */
//     public static Uri PathToUri(String path) {
//         return Uri.fromFile(new File(path));
//     }
// 
//     public static Uri LocationToUri(String location) {
//         Uri uri = Uri.parse(location);
//         if (uri.getScheme() == null)
//             throw new IllegalArgumentException("location has no scheme");
//         return uri;
//     }
// 
//     public static Uri FileToUri(File file) {
//         return Uri.fromFile(file);
//     }
// }


// Path: player-android/src/org/videolan/libvlc/Media.java
import java.io.FileDescriptor;
import org.videolan.libvlc.Media.Track;
import org.videolan.libvlc.util.AndroidUtil;
import org.videolan.libvlc.util.HWDecoderUtil;
import android.net.Uri;

    }

    /**
     * see libvlc_state_t
     */
    public static class State {
        public static final int NothingSpecial = 0;
        public static final int Opening = 1;
        public static final int Buffering = 2;
        public static final int Playing = 3;
        public static final int Paused = 4;
        public static final int Stopped = 5;
        public static final int Ended = 6;
        public static final int Error = 7;
        public static final int MAX = 8;
    }

    /**
     * see libvlc_media_parse_flag_t
     */
    public static class Parse {
        public static final int ParseLocal   = 0;
        public static final int ParseNetwork = 0x01;
        public static final int FetchLocal   = 0x02;
        public static final int FetchNetwork = 0x04;
    }

    /**
     * see libvlc_media_track_t
     */
    public static abstract class Track {