public enum ElementFactoryListType {
    DECODER((long) 1 << 0),
    ENCODER((long) 1 << 1),
    SINK((long) 1 << 2),
    SRC((long) 1 << 3),
    MUXER((long) 1 << 4),
    DEMUXER((long) 1 << 5),
    PARSER((long) 1 << 6),
    PAYLOADER((long) 1 << 7),
    DEPAYLOADER((long) 1 << 8),
    FORMATTER((long) 1 << 9),
    MAX_ELEMENTS((long) 1 << 48),
    ANY((((long) 1) << 49) - 1),

    MEDIA_ANY(~((long) 0) << 48),
    MEDIA_VIDEO((long) 1 << 49),
    MEDIA_AUDIO((long) 1 << 50),
    MEDIA_IMAGE((long) 1 << 51),
    MEDIA_SUBTITLE((long) 1 << 52),
    MEDIA_METADATA((long) 1 << 53),
    VIDEO_ENCODER(ENCODER.getValue() | MEDIA_VIDEO.getValue() | MEDIA_IMAGE.getValue()),
    AUDIO_ENCODER(ENCODER.getValue() | MEDIA_AUDIO.getValue()),
    AUDIOVIDEO_SINKS(
        SINK.getValue() | MEDIA_AUDIO.getValue() | MEDIA_VIDEO.getValue() | MEDIA_IMAGE.getValue()),
    DECODABLE(ENCODER.getValue() | DEMUXER.getValue() | DEPAYLOADER.getValue() | PARSER.getValue());

    private long value;

    private ElementFactoryListType(long value) {
      this.value = value;
    }

    public long getValue() {
      return value;
    }
  }